[Typescript] 열거형 타입

Narcoker·2025년 3월 17일

Typescript

목록 보기
3/15

열거형 타입

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

자바스크립트에서는 지원하지 않지만 컴파일 시 사라지지 않고 객체로 변환된다.

아래와 같이 유저마다 역할이 있고, 이를 Number형으로 지정한다고 가정하자
이 방식은 직관적이지 못하며, 기억의 상실로 인해 오류를 발생시킬 수 있다.

const user1 = {
	name: "김범수"
	role: 0 // 관리자
}

const user2 = {
	name: "홍길동"
	role: 1 // 일반 유저
}

const user3 = {
	name: "아무개"
	role: 2 // 게스트
}

이를 방지하기 위해서 열거형 타입을 사용한다.

// 열거형 타입 정의
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, // 게스트
}

열거형 타입은 값을 지정하지 않므연,
맨 위에서 부터 0, 1, 2, ... 순으로 자동 지정된다.

// 열거형 타입 정의
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, // 게스트
}

만약 맨 위의 멤버에 특정 문자를 지정하면,
순서대로 숫자가 오름 차순으로 자동 지정된다.

// 열거형 타입 정의
enum Role { 
  ADMIN = 10, // 10
  USER, // 11
  GUEST, // 12
}

const user1 = {
  name: "김범수",
  role: Role.ADMIN, // 관리자 10
}

const user2 = {
  name: "홍길동",
  role: Role.USER, // 일반 유저 11
}

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

중간 멤버에 특정 문자를 지정하면 처음에는 0 부터 시작하고
지정 숫자 이후부터 순서대로 숫자가 오름 차순으로 자동 지정된다.

// 열거형 타입 정의
enum Role { 
  ADMIN, // 0
  USER = 10, // 10
  GUEST, // 11
}

const user1 = {
  name: "김범수",
  role: Role.ADMIN, // 관리자 0
}

const user2 = {
  name: "홍길동",
  role: Role.USER, // 일반 유저 10
}

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

출처

인프런 - 한 입 크기로 잘라먹는 타입스크립트

profile
열정, 끈기, 집념의 Frontend Developer

0개의 댓글