【发布时间】:2023-03-31 22:34:01
【问题描述】:
我有一个名为Tail 的自定义类型,它将返回没有第一个元素的数组类型:
type Tail<T extends any[]> =
((...t: T) => any) extends ((_: any, ...tail: infer TT) => any)
? TT
: []
type test11 = Tail<[1, 2, string, number]> // [2, string, number]
上面的代码运行正常,但是使用with函数时,现在不行了:
function tail<T extends any[]>(arr: T): Tail<T> {
return arr.slice(1) as Tail<T>;
}
let result = tail(['', 1]); // res: (string | number)[]
result 应该只有number,但是却显示(string | number)[],为什么?
【问题讨论】:
标签: arrays typescript tuples type-inference tail