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