この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。

BFE.devでのAI解答例 - TypeScript タイプパズル
54. Implement CamelCase<S>

解答例:

type CamelCase<S extends string> = S extends `${infer T}_${infer U}`  ? `${Capitalize<T>}${CamelCase<U>}`  : S;type A = CamelCase<'big_front_end'> // BigFrontEnd

説明:

この問題では、スネークケースで書かれた文字列をキャメルケースに変換する必要があります。

一般的なアプローチは、文字列を _ で分割し、それぞれの語を最初の文字を大文字に変換し、再度結合することです。その実装は以下のようになります:

type CamelCase<S extends string> =  S extends `${infer T}_${infer U}`    // 文字列を '_' で分割する    ? `${Capitalize<T>}${CamelCase<U>}`  // 最初の文字を大文字にして再帰的に変換する    : S;                                // 文字列が1つしかない場合は変換しない

ここで使用された Capitalize は、文字列の最初の文字を大文字に変換するために使用される、TypeScriptのビルトイン関数です。