この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。
BFE.devでのAI解答例 - TypeScript タイプパズル
41. implement FindIndex<T, E>
type FindIndex<T extends any[], E> = { [K in keyof T]: T[K] extends E ? K : never}[number];
配列T
をジェネリック型で受け取り、keyof T
で配列のインデックスを列挙した型を作成します。
配列Tの各インデックスについて、型条件を使用して、T[K]
が型Eと一致するかどうかをチェックします。
一致する場合、そのインデックスをキーとしてマップのK
プロパティに割り当て、一致しない場合はnever
を割り当てます。
最後に、数字型をキーとしたマップにアクセスし、一致するキーの最初のインデックスを返します。この方法により、配列の先頭から順番に見つかった最初の一致するインデックスが返されます。