この解答例は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
を返します。