union vs intersection

하나만 가능한 값은 유니온, 모두 필요한 값은 인터섹션

두 조합 타입은 문법이 비슷해도 모델링하는 현실이 다릅니다. 선택 기준을 먼저 정하면 타입 좁히기와 충돌 처리도 쉬워집니다.

Union: A 또는 B

상태 분기 성공 응답 또는 오류 응답처럼 한 순간에는 하나의 모양만 가집니다.
공통 접근 좁히기 전에는 모든 멤버가 공유하는 속성만 접근 범위에 남습니다.

Intersection: A 그리고 B

기능 결합 User와 Admin 권한처럼 여러 계약을 동시에 만족해야 합니다.
충돌 확인 같은 속성 이름의 타입이 다르면 never가 될 수 있어 설계를 분리합니다.
실전 판단

식별자 필드로 안전하게 분기할 수 있으면 유니온이 좋고, 여러 책임을 합쳐 하나의 객체가 제공해야 한다면 인터섹션이 더 자연스럽습니다.