From ccf901b505c3acc02a0a72f579fddab608563102 Mon Sep 17 00:00:00 2001 From: antfu Date: Sun, 26 Jul 2020 09:25:03 +0800 Subject: [PATCH] feat: tuple-to-union --- questions/10-medium-tuple-to-union/README.md | 13 +++++++++++++ questions/10-medium-tuple-to-union/info.yml | 8 ++++++++ questions/10-medium-tuple-to-union/info.zh-CN.yml | 1 + questions/10-medium-tuple-to-union/template.ts | 1 + questions/10-medium-tuple-to-union/test-cases.ts | 6 ++++++ 5 files changed, 29 insertions(+) create mode 100644 questions/10-medium-tuple-to-union/README.md create mode 100644 questions/10-medium-tuple-to-union/info.yml create mode 100644 questions/10-medium-tuple-to-union/info.zh-CN.yml create mode 100644 questions/10-medium-tuple-to-union/template.ts create mode 100644 questions/10-medium-tuple-to-union/test-cases.ts diff --git a/questions/10-medium-tuple-to-union/README.md b/questions/10-medium-tuple-to-union/README.md new file mode 100644 index 00000000..f02ef5fd --- /dev/null +++ b/questions/10-medium-tuple-to-union/README.md @@ -0,0 +1,13 @@ +

Deep Readonly medium #readonly #object-keys #deep

by Anthony Fu @antfu

Take the Challenge

+ +Implement a generic `TupleToUnion` which covers the values of a tuple to its values union. + +For example + +```ts +type Arr = ['1', '2', '3'] + +const a: TupleToUnion // expected to be '1' | '2' | '3' +``` + +Back Check out Solutions Share your Solutions \ No newline at end of file diff --git a/questions/10-medium-tuple-to-union/info.yml b/questions/10-medium-tuple-to-union/info.yml new file mode 100644 index 00000000..5c971a3e --- /dev/null +++ b/questions/10-medium-tuple-to-union/info.yml @@ -0,0 +1,8 @@ +title: Tuple to Union + +author: + name: Anthony Fu + email: hi@antfu.me + github: antfu + +tags: infer, tuple, union \ No newline at end of file diff --git a/questions/10-medium-tuple-to-union/info.zh-CN.yml b/questions/10-medium-tuple-to-union/info.zh-CN.yml new file mode 100644 index 00000000..fd41643c --- /dev/null +++ b/questions/10-medium-tuple-to-union/info.zh-CN.yml @@ -0,0 +1 @@ +title: 元组转合集 \ No newline at end of file diff --git a/questions/10-medium-tuple-to-union/template.ts b/questions/10-medium-tuple-to-union/template.ts new file mode 100644 index 00000000..840acde1 --- /dev/null +++ b/questions/10-medium-tuple-to-union/template.ts @@ -0,0 +1 @@ +type TupleToUnion = any diff --git a/questions/10-medium-tuple-to-union/test-cases.ts b/questions/10-medium-tuple-to-union/test-cases.ts new file mode 100644 index 00000000..8089dfd9 --- /dev/null +++ b/questions/10-medium-tuple-to-union/test-cases.ts @@ -0,0 +1,6 @@ +import { Equal, Expect } from '@type-challenges/utils' + +type cases = [ + Expect, 123 | '456' | true>>, + Expect, 123>>, +]