서로소 유니온 타입

교집합이 없는 타입들을 모아 만든 유니온 타입

type Admin = {
  tag: "ADMIN";
  name: string;
  kickCount: number;
};

type Member = {
  tag: "MEMBER";
  name: string;
  point: number;
};

type Guest = {
  tag: "GUEST";
  name: string;
  visitCount: number;
};

tag를 이용하여, 타입가드

  • if문 이용

  • switch문 이용

여러가지 상태를 표현해야 되는 객체 타입을 정의할 때에는 선택적 프로퍼티를 사용하는 것보다는 상태에 따라서 타입들을 잘개 쪼개어 태그같은 프로퍼티를 추가해서 서로소 유니온 타입으로 만들어주는 것이 좋다. 그래야, 스위치 케이스 문을 이용할 때 더 직관적이고 안전하게 타입을 좁힐 수 있기 때문이다.

Last updated