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