Narrowing은 TypeScript가 런타임 검사를 바탕으로 코드 분기 안에서 넓은 타입(예: union)을 더 구체적인 타입으로 정제하는 방식입니다. 컴파일러는 제어 흐름을 추적하며 그에 따라 타입을 갱신합니다.
ts
function process(x: string | number) {
if (typeof x === "string") {
x.toUpperCase(); // ✅ 여기서 x는 string으로 narrowing됨
} else {
x.();
}
}
