この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。
BFE.devでのAI解答例 - TypeScript タイプパズル
60. implement UndefinedToNull<T>
解答例:
type UndefinedToNull<T> = { [K in keyof T]: T[K] extends undefined ? null : T[K] extends object ? UndefinedToNull<T[K]> : T[K]}
説明:
UndefinedToNull<T>はジェネリック型で、オブジェクトの各プロパティに対して再帰的に処理を行います。[K in keyof T]は、オブジェクトTのプロパティ名Kを列挙し、その各プロパティに処理を行います。T[K] extends undefined ? nullは、T[K]がundefinedであればnullに変換します。T[K] extends object ? UndefinedToNull<T[K]> : T[K]は、T[K]がオブジェクトであれば再帰的にUndefinedToNullで処理を行い、そうでなければそのまま返します。