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