以下为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类型。