Code Fix

中級union型(string | number)のメソッド呼び出しで型エラーになる理由 › パターン2

union型(string | number)のメソッド呼び出しで型エラーになる理由

string | numberのようなunion型の値に対して、片方の型にしか無いメソッド(toUpperCaseなど)を呼び出そうとすると、もう一方の型に無いことを理由にエラーになります。

 1  function format(value: string | number): string {
 2    return value.________(2);
                       ^
 3  }
 4  console.log(format(3.14159));
main.ts(2,16): error TS2339: Property 'toFixed' does not exist on type 'string | number'.

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

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

union型(string | number)のメソッド呼び出しで型エラーになる理由

typeof等で型を絞り込む(narrowing)必要があります。

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

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