TypeScript 타입 좁히기 분기

유니온 값은 런타임 검사를 통과한 분기 안에서 더 구체적인 타입이 되고, 해당 타입의 멤버만 안전하게 사용할 수 있습니다.

id: string | number현재 값이 문자열인지 숫자인지 아직 확정되지 않은 유니온 상태입니다.

typeof id === "string"

id는 string으로 좁혀지므로 toUpperCase()를 호출할 수 있습니다.

거짓

else → number

string 가능성이 제거되어 id는 number가 되고 toFixed()를 호출할 수 있습니다.

합류

분기 밖

두 경로가 다시 만나면 선언된 string | number 범위로 돌아가 공통 동작만 허용됩니다.

핵심typeof, instanceof, in, 사용자 정의 타입 가드는 런타임 사실을 제어 흐름 분석에 전달합니다.