この解答例は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
で処理を行い、そうでなければそのまま返します。