후보 중 하나
UNION
Success|Error
값은 한 경로로 들어온다공통 멤버만 바로 쓰고 status·typeof 같은 검사로 좁힌다.
type ApiResult = Success | Error;
기호는 비슷한 조합처럼 보여도 값이 통과해야 하는 규칙은 정반대다.
type ApiResult = Success | Error;
type AdminUser = User & Privileges;
성공/실패, 로딩/완료처럼 런타임에서 갈라지면 유니온과 식별 필드를 쓴다.
사용자 정보와 관리자 권한처럼 한 객체에 모두 필요하면 인터섹션을 쓴다.