この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。
BFE.devでのAI解答例 - TypeScript タイプパズル
26. ReverseTuple<T> を実装してください。
解答例:
type ReverseTuple<T extends any[]> = T extends [infer Head, ...infer Rest] ? [...ReverseTuple<Rest>, Head] : []
ReverseTuple<T>
は、T
というジェネリックタプルタイプを受け取り、その順序を逆にしたタプル型を返します。
まず、条件型を利用して、ジェネリックタプルの先頭要素を取得します。そのうえで、残りの要素を取得するためにRest
インターセクション型を作成します。次に、残りの要素を再帰的に処理します。最後に、配列スプレッド演算子を使って、先頭要素を末尾に追加します。
もし、ジェネリックタプルの長さがゼロの場合には、空のタプル[]
が返されます。