问题 #
构造一个指定长度的元组
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]>
拆分 #
- 递归数组