enum 타입은 Enumerate Type으로 열거형 타입으로
여러가지 값들에 각각 이름을 부여해 열거해두고 사용하는 타입을 말한다.
{name, role} 속성을 가지는 user 객체가 있다.
const user1 = {
name: "Park",
role: 0, // admin
language: "ko",
};
const user2 = {
name: "Kim",
role: 1, // user
language: "en",
};
const user3 = {
name: "Lee",
role: 2, // guest
language: "ko",
};
role에 숫자를 이용해서 각각 admin, user, guest 역할을 지정했다.
만약 admin의 값을 0이 아니라 1로 바꿔야 하는 상황이 발생하면 모든 user객체를 하나씩 참조하면서 일일이 바꿔야 하는 일이 발생한다.
이런 비효율적인 일을 막기 위해 enum타입을 이용해 각각의 값들에 이름을 부여하여 효율적으로 관리할 수 있다.
enum Role {
ADMIN,
USER,
GUEST,
}
enum Language {
korean = "ko",
english = "en",
}
const user1 = {
name: "Park",
role: Role.ADMIN, // 0
language: Language.korean, // "ko"
};
const user2 = {
name: "Kim",
role: Role.USER, // 1
language: Language.english, // "en"
};
const user3 = {
name: "Lee",
role: Role.GUEST, // 2
language: Language.korean, // "ko"
};
이런식으로 enum 타입을 만들어서 객체의 속성을 더 효율적으로 관리할 수 있다.
enum 타입에서 숫자 값들은 기본적으로 0부터 시작하여 1씩 늘어난다.
만약 enum 타입에서 특정한 숫자값을 지정하고 싶으면
enum Role {
ADMIN = 3,
USER, // 4
GUEST = 7,
}
이런식으로 숫자값을 = 으로 부여하면 된다.