中級 › 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'.
空欄を埋めてコンパイルを通す
valueはstring | number型です。toUpperCaseはstringにしかないメソッドなので、narrowingせずには呼べません。
次の問題