Giting.
낮의 Giting

메뉴판 › 타입스크립트 에러 사전 › 좁히기·유니온 › 유니온 타입에서 메서드를 못 써요

error TS2339: Property 'toUpperCase' does not exist on type 'string | number'.

전

function f(x: string | number) {
  return x.toUpperCase();
}

후

function f(x: string | number) {
  return typeof x === "string" ? x.toUpperCase() : String(x);
}
왜 이렇게 되나
  • 유니온(A | B)에서는 양쪽 공통 멤버만 쓸 수 있어, 한쪽 전용 메서드가 막힌다
됐는지 보는 법

각 타입별로 분기돼 있고 빨간 줄이 없으면 성공.

같은 묶음 · 좁히기·유니온