上級 › keyof typeofで作ったキーの型は、存在しないキーを渡すとエラーになる › パターン1
keyof typeofで作ったキーの型は、存在しないキーを渡すとエラーになる
keyof typeof objは、実行時のオブジェクトobjが実際に持つキーだけを表すunion型(リテラル型の集合)になります。
1 const colors = { red: "#f00", green: "#0f0" }; 2 type ColorKey = keyof typeof colors; 3 function getColor(key: ColorKey): string { 4 return colors[key]; 5 } 6 console.log(getColor(______)); ^
main.ts(6,22): error TS2345: Argument of type '"blue"' is not assignable to parameter of type '"red" | "green"'.
空欄を埋めてコンパイルを通す
ColorKeyはcolorsが実際に持つキー("red" | "green")だけを表します。"blue"はcolorsに存在しないキーです。
次の問題