TypeScript类型编程题目1:实现一个Tuple类型,返回对应数量的元组类型 - 掘金 (juejin.cn)
上一期的答案
type Tuple<T extends number, U extends void[] = []> =
U['length'] extends T ? U : Tuple<T, [void, ...U]>
解析
Tuple接收两个类型参数,第一个参数为number类型,第二个参数为void[]的数组类型,默认为空数组。每个数组类型都有一个属性length,U['length'] extends T ? U : Tuple<T, [void, ...U]> 表示目前U里面的数量是否为T,如果是就返回U,如果不是,就递归的调用 Tuple<T, [void, ...U]> 并给第二个参数增加一项。
今日题目:实现一个TupleO2N类型,入参一个number N,返回从0-N-1的的元组
预期
type A = Tuple2N<1> // [0]
type B = Tuple2N<2> // [0, 1]
type C = Tuple2N<3> // [0, 1, 2]