either or, both

유니온과 인터섹션 선택 기준

유니온은 여러 경우 중 하나를 표현하고, 인터섹션은 여러 요구사항을 동시에 만족하는 타입을 만듭니다.

유니온

가능한 값의 목록

문자열 또는 숫자처럼 하나의 값이 여러 타입 중 하나일 수 있음을 표현합니다.

string | number
좁히기

분기마다 안전하게 사용

typeof, in, 리터럴 판별자로 현재 값이 어떤 경우인지 확인합니다.

if (kind === "ok")
인터섹션

능력과 속성 결합

여러 객체 타입을 합쳐 모든 속성을 가진 새 타입으로 다룹니다.

A & B
API 응답

성공과 실패 분리

성공 결과와 오류 결과를 유니온으로 두면 처리 누락을 줄일 수 있습니다.

Success | Failure
선택지 모델 상태가 여러 갈래라면 discriminated union으로 kind를 둡니다.
결합 모델 역할을 더하는 설계라면 인터섹션으로 기능 집합을 합칩니다.
오류 방지 유니온 값은 좁히기 전에는 공통 속성만 안전하게 접근할 수 있습니다.

유니온과 인터섹션은 복잡한 타입의 출발점이며, 둘을 구분하면 상태 모델링이 훨씬 명확해집니다.