この解答例は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に格納して、結果の文字列を再構成することができます。
  • 上記の条件式は、文字列が上記のパターンとマッチした場合に文字列を再構成する再帰的な処理に進み、マッチしなかった場合は文字列をそのまま返します。