열거형(Enum) 타입


JS에는 존재하지 않고 TS에서만 사용할 수 있는 특별한 타입. 여러 개의 값을 나열하는 용도로 사용

enum Role {
  ADMIN,
  USER,
  GUEST,
}

→ 3개의 멤버 ADMIN, USER, GUEST를 나열한 열거형 타입을 하나 만듬

enum의 각 멤버에는 다음과 같이 숫자를 할당할 수 있음

enum Role {
  ADMIN = 0,
  USER = 1,
  GUEST = 2,
}

또 다음과 같이 enum의 멤버들을 값으로도 활용할 수 있음

// enum 타입
// 여러가지 값들에 각각 이름을 부여해 열거해두고 사용하는 타입

enum Role {
  ADMIN = 0,
  USER = 1,
  GUEST = 2,
}

const user1 = {
  name: "이정환",
  role: Role.ADMIN, //관리자
};

const user2 = {
  name: "홍길동",
  role: Role.USER, // 회원
};

const user3 = {
  name: "아무개",
  role: Role.GUEST, // 게스트
};

→ user1.role에는 0 / user2.role에는 1/ user3.role에는 2

유저의 권한과 같은 여러 개의 멤버를 갖는 값을 숫자로 표기할 때는 enum을 이용해 보다 안전하고 직관적으로 관리할 수 있음

enum에 숫자 값을 직접할당하지 않아도 0부터 1씩 늘어나는 값으로 자동 할당됨

// enum 타입
// 여러가지 값들에 각각 이름을 부여해 열거해두고 사용하는 타입

enum Role {
  ADMIN, // 0 할당(자동)
  USER,  // 1 할당(자동)
  GUEST, // 2 할당(자동)
}

const user1 = {
  name: "이정환",
  role: Role.ADMIN, // 0
};

const user2 = {
  name: "홍길동",
  role: Role.USER, // 1
};

const user3 = {
  name: "아무개",
  role: Role.GUEST, // 2
};

자동할당되는 값은 기본적으로 0부터 시작함. 만약 이 값을 변경하고 싶으면 다음과 같이 시작하는 위치에 값을 직접 할당해 주면 됨. 그럼 자동으로 그 아래의 멤버들은 1씩 증가된 값으로 할당됨