以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!
BFE.devAI解答 - TypeScript 类型谜题
21. implement LastItem<T>
type LastItem<T extends any[]> = T extends [...infer _, infer Last] ? Last : never;
解析:
- 类型参数
T
必须是一个数组类型T extends any[]
。 - 使用数组展开语法
[...infer _, infer Last]
,将数组类型拆分成两部分:infer _
表示数组前面的所有元素类型,可以忽略;infer Last
表示最后一个元素的类型。 - 使用条件类型判断,如果
T
能够被拆分成infer Last
,则返回Last
类型,否则返回never
类型。