この解答例はChatGPTによって生成されています,正しいかは自己判断で。

BFE.devでのAI解答例 - TypeScript タイプパズル
4. Record<K, V> を実装する

type MyRecord<K extends keyof any, V> = {
  [key in K]: V;
};

解説:

  • Keyof any を使って、オブジェクト key のタイプに制限をかけていませんが、仕様通り number | string | symbol のみが使用可能なため、問題ないです。
  • K extends keyof any を使って、オブジェクトの key が存在する場合のみ V の値を持たせるようにしています。これによって、Foo のようにオブジェクトではなく {a: string} のような型指定ができなくなります。
  • { [key in K]: V; } は、K の全ての key に対して V の値を持つオブジェクトを示しています。