
여러가지 값들에 각각 이름을 부여해 열거해두고 사용하는 타입
자바스크립트에서는 지원하지 않지만 컴파일 시 사라지지 않고 객체로 변환된다.
아래와 같이 유저마다 역할이 있고, 이를 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
}