Code Fix

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

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

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

 1  function describe(value: string | number): string {
 2    return value.___________();
                        ^
 3  }
 4  console.log(describe("hi"));
main.ts(2,16): error TS2339: Property 'toUpperCase' does not exist on type 'string | number'.

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

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

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

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

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

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