この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。
BFE.devでのAI解答例 - TypeScript タイプパズル
34. implement Repeat<T, C>
解答例:
type Repeat<T, C extends number> = C extends 0 ? [] : [T, ...Repeat<T, C extends 1 ? 0 : C-1>];
Explanation:
型パラメータ T
と C
を受け取り、C
が 0 の場合は空の配列を、それ以外の場合は T
を配列の先頭に追加し、C
を 1 減らして再帰的に Repeat
関数を呼び出すことで、指定回数分だけ T
を配列に繰り返す型を定義します。
なお、Cが1のときに新たな再起呼び出しを行っているのは、TypeScriptの型システムが最低1回は再帰的な型定義を行う必要があるためです。