type narrowing

타입 좁히기 판단 경로

타입 좁히기는 넓게 선언된 값에서 현재 분기에 안전하게 사용할 수 있는 타입만 남기는 과정입니다.

typeof

원시 타입 확인

string, number, boolean 같은 원시값 분기에 맞춰 런타임 타입을 좁힙니다.

typeof value === "string"
instanceof

클래스 인스턴스 확인

Date, Error, 사용자 클래스처럼 생성자 기반 객체를 좁힐 때 씁니다.

err instanceof Error
in 연산자

속성 존재 확인

객체 유니온에서 특정 속성이 있는 분기를 골라낼 수 있습니다.

"swim" in animal
사용자 가드

도메인 규칙 캡슐화

반복되는 확인 로직은 value is Type 반환 함수로 이름 붙입니다.

value is User
분기 후 사용 가드가 통과한 블록 안에서만 좁혀진 속성에 접근합니다.
동등성 검사 리터럴 값 비교로 상태 유니온을 안전하게 나눌 수 있습니다.
함수 이름 사용자 정의 가드는 어떤 타입을 보장하는지 이름에 드러냅니다.

타입 가드는 런타임 확인과 컴파일러 이해를 연결해 안전한 분기 코드를 만듭니다.