type combine

유니온은 선택지를, 인터섹션은 조합을 표현한다

둘 다 타입을 합치는 문법이지만 유니온은 가능한 경우 중 하나, 인터섹션은 여러 조건을 동시에 만족하는 값입니다.

union

유니온 타입

문자열 또는 숫자처럼 가능한 형태가 여러 개인 값을 표현합니다.

tag

구분 필드

kind 같은 공통 필드로 어떤 경우인지 안전하게 좁힙니다.

intersection

인터섹션 타입

기본 속성과 추가 속성을 동시에 만족하는 객체를 만들 때 씁니다.

narrow

타입 좁히기

if, switch, in 검사로 현재 값의 타입을 컴파일러에 전달합니다.

선택지 값이 여러 형태 중 하나라면 유니온을 쓰고 사용 지점에서 좁힙니다.
조합 여러 타입의 속성을 모두 가져야 한다면 인터섹션으로 합칩니다.
안전성 공통 필드 없는 유니온은 분기 코드가 복잡해지므로 status 같은 구분자를 둬 narrowing 기준을 명시합니다.