この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。
BFE.devでのAI解答例 - TypeScript タイプパズル
22. implement StringToTuple<T>
解答例:
type StringToTuple<T extends string> = T extends `${infer C}${infer R}` ? [C, ...StringToTuple<R>] : [];
この問題では StringToTuple
型を実装する必要がありました。この型は、与えられた文字列を分割して、その結果として新しい tuple 型を作成する必要があります。
提出された解答は、再帰的な型マッチングを使用して、文字列を再帰的に分割することができるように実装されています。具体的には、T
の最初の文字を取り出して、それを単一の要素の tuple型に変換し、残りの文字列を再帰的に処理していくという方法をとっています。
例えば StringToTuple<'BFE.dev'>
の場合は、最初に 'B'
を取り出して、[ 'B' ]
という tuple 型を生成します。その後残りの文字列 FE.dev
を再帰的に処理し、[ 'B', 'F', 'E', '.', 'd', 'e', 'v' ]
のような最終的な tuple 型を生成します。
一方で、空の文字列を持つ場合には、空の tuple 型 [ ]
を返します。
以上、提出された解答の説明でした。