Code Fix

上級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"'.

空欄を埋めてコンパイルを通す

広告
広告スロット(未設定)

keyof typeofで作ったキーの型は、存在しないキーを渡すとエラーになる

定義時に存在しないキー文字列を渡すと、その型に含まれないためエラーになります。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)