Skip to content

元组转合集

197字小于1分钟

2022-12-01

题目

Github: Tuple to union

实现泛型TupleToUnion<T>,它返回元组所有值的合集。

type Arr = ['1', '2', '3']

type Test = TupleToUnion<Arr> // expected to be '1' | '2' | '3'

解题思路

在访问元组的成员时,可以通过 [number] 索引,访问一个 由元组所有成员构成的联合类型。

同时,需要对 T 添加约束,以告知编译器 T 是一个可以被索引的数组。

答案

type TupleToUnion<T extends unknown[]> = T[number]

验证

type 
cases
= [
Expect
<
Equal
<
TupleToUnion
<[123, '456', true]>, 123 | '456' | true>>,
Expect
<
Equal
<
TupleToUnion
<[123]>, 123>>,
]

参考