问题
构造一个指定长度的元组
type case1 = ConstructTuple<0> // []
type case2 = ConstructTuple<2> // [unknown, unknown]
type case3 = ConstructTuple<999>['length'] // 999
// @ts-expect-error
type case4 = ConstructTuple<1000>['length'] // 1000
解答
type ConstructTuple<L extends number, C extends unknown[] = []> = C['length'] extends L ? C : ConstructTuple<L, [...C, unknown]>
拆分
- 递归数组