TypeScript类型体操题目2:实现一个TupleO2N类型,入参一个number N,返回从0-N-1的的元组

130 阅读1分钟

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]

答案明天见

原文地址