この解答例はChatGPTによって生成されています,正しいかは自己判断で。

BFE.devでのAI解答例 - TypeScript タイプパズル
21. implement LastItem<T>

解答例:

type LastItem<T extends any[]> = T extends [...infer _, infer L] ? L : never;

説明:

  • T extends any[] で、入力されたジェネリック型Tがtupleであることを確認している。
  • ...infer _ で、tupleを分割して部分型を取得している。ここで _ は使わない変数なので、通常アンダースコアで表現されます。
  • infer L で、最後の要素を取得するために、部分型の最後の要素をLとして扱います。
  • 最後に、 ? L : never で、tupleが空でない場合はLを返して、空である場合は never を返します。