
Enum 타입은 타입스크립트에만 존재하는 타입이다.
enum UserRle {
ADMIN,
USER,
GUEST,
}
위와 같이 여러가지 값들을 열거해 놓고 사용할 수 있는 타입인데, Dictionary 같은 역할을 해주는 타입이라고 이해했다.
enum UserRole {
ADMIN : 0,
USER : 1,
GUEST : 2,
}
위 처럼, 각 값에 number 값을 할당해주었다면,
const user1 = {
name : "kimcoding",
role : UserRole.ADMIN, // 0
}
const user2 = {
name : "parkHacker",
role : UserRole.USER // 1
}
const user3 = {
name : "leePerson",
role : UserRole.GUEST // 2
}
이런식으로, 각 객체의 프로퍼티 값을 보다 안전하고 직관적으로 할당 및 관리할 수 있다.
Enum 타입은 상황에 따라 자동할당을 해줄 수 있다.
enum UserRole {
ADMIN, // 0
USER, // 1
GUEST, // 2
}
위의 코드처럼, enum 멤버에 아무런 값을 설정하지 않았을 경우,
Enum 타입은 위에서부터 자동으로 0부터 오름차순으로 값을 자동할당해준다.
enum UserRole {
ADMIN = 10
USER, // 11
GUEST, // 12
}
또한, 가장 상단의 멤버에 값이 할당되어 있다면, 그 값을 기준으로 1씩 증가하며 나머지 값에 할당해준다.
enum UserRole {
ADMIN, // 0
USER = 10,
GUEST, // 11
}
중간에 있는 enum 멤버에만 값이 할당되었다면, 그 멤버 기준 위에 있는 멤버들은 0으로 할당되고, 아래에 있는 멤버들은 마찬가지로 1씩 증가된 값이 할당된다.
Enum 타입은 꼭 number타입이 아닌 String 값도 할당이 가능하다.
enum UserRole {
ADMIN : 0,
USER : 1,
GUEST : 2
}
enum Language {
korean = "ko",
english = "en",
}
const user1 = {
name : "kimcoding",
role : UserRole.ADMIN, // 0
language : Language.english // "en"
}
위처럼, 문자열로 이루어진 Enum 타입을 선언하여, 각 객체의 프로퍼티를 효과적으로 관리할 수 있다.
출처 : 인프런 - 한 입 크기로 잘라먹는 타입스크립트