この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。
BFE.devでのAI解答例 - TypeScript タイプパズル
43. Trim<T> を実装してください。
解答例:
type Trim<T extends string> = T extends ` ${infer U}` | `\n${infer U}` | `\t${infer U}` | `\r${infer U}` | `\f${infer U}` ? Trim<U> : T extends `${infer U} ` | `${infer U}\n` | `${infer U}\t` | `${infer U}\r` | `${infer U}\f` ? Trim<U> : T;
Trim<T>
は、T extends string
として定義されています。string
は、typeScriptで文字列型の組み込み型です。- 今回の問題では、白色スペース、改行、タブ、リターン、フォームフィードとマッチする場合に、残りの部分を再帰的に処理する必要があります。
infer U
を使用して、文字列を構成するために使用される複数のパターンを定義し、各文字を新しい変数Uに格納して、結果の文字列を再構成することができます。 - 上記の条件式は、文字列が上記のパターンとマッチした場合に文字列を再構成する再帰的な処理に進み、マッチしなかった場合は文字列をそのまま返します。