この解答例は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
の値を持つオブジェクトを示しています。