この解答例は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:

型パラメータ TC を受け取り、C が 0 の場合は空の配列を、それ以外の場合は T を配列の先頭に追加し、C を 1 減らして再帰的に Repeat 関数を呼び出すことで、指定回数分だけ T を配列に繰り返す型を定義します。

なお、Cが1のときに新たな再起呼び出しを行っているのは、TypeScriptの型システムが最低1回は再帰的な型定義を行う必要があるためです。