以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!
BFE.devAI解答 - TypeScript 类型谜题
29. implement Shift<T>
解答:
可以使用tuple的内置类型infer
和rest
来实现。
代码如下:
type Shift<T extends any[]> = T extends [infer _, ...infer Rest] ? Rest : []
其中,T extends [infer _, ...infer Rest]
用来匹配非空的tuple,而_
代表tuple的第一个元素,Rest
代表剩余的元素组成的tuple。如果T
是空的,就返回空的tuple[]
。
测试代码:
type A = Shift<[1,2,3]> // [2,3]type B = Shift<[1]> // []type C = Shift<[]> // []
测试结果:
type A = [2, 3]
type B = []
type C = []