TypeScript
[TS] Enum(열거형) 타입
ea_jung
2024. 6. 29. 16:20
Enum(열거형) 타입
열거형 타입은 여러 개의 값을 나열하는 용도로 사용합니다.
실제로 enum은 컴파일 될 때 다른 타입들 처럼 사라지지 않고 자바스크립트 객체로 변환됩니다.
// Enum 컴파일 전
enum Role {
ADMIN,
USER,
GUEST,
}
enum Language {
korean = "ko",
english = "en",
}
// 컴파일 후 자바스크립트 객체로 변환된다.
var Role;
(function (Role) {
Role[Role["ADMIN"] = 0] = "ADMIN";
Role[Role["USER"] = 1] = "USER";
Role[Role["GUEST"] = 2] = "GUEST";
})(Role || (Role = {}));
var Language;
(function (Language) {
Language["korean"] = "ko";
Language["english"] = "en";
Language["japanese"] = "jp";
})(Language || (Language = {}));
본격적으로 Enum(열거형)
타입에 대해 알아 봅시다.
enum Role {
ADMIN,
USER,
GUEST,
}
3개의 값 ADMIN, USER, GUEST를 나열한 enum
입니다.
enum의 각 값에는 숫자를 할당할 수 있습니다.
enum Role {
ADMIN = 0,
USER = 1,
GUEST = 2,
}
그리고 신기하게도 enum
은 숫자를 직접 할당하지 않아도 0부터 1씩 늘어나는 값으로 자동으로 할당됩니다.
enum Role {
ADMIN, // 0 할당 (자동)
USER, // 1 할당 (자동)
GUEST, // 2 할당 (자동)
}
만약 ADMIN
에 10을 할당했다면 10에서 1씩 증가하며 증가합니다.
// enum 타입
// 여러가지 값들에 각각 이름을 부여해 열거해두고 사용하는 타입
enum Role {
ADMIN = 10, // 10 할당
USER, // 11 할당(자동)
GUEST, // 12 할당(자동)
}
그리고 enum
의 값 들은 프로퍼티의 값으로 각각 사용 가능합니다.
// enum 타입
// 여러가지 값들에 각각 이름을 부여해 열거해두고 사용하는 타입
enum Role {
ADMIN = 10, // 10 할당
USER, // 11 할당(자동)
GUEST, // 12 할당(자동)
}
const user1 = {
name: "이놈",
role: Role.ADMIN, // 10
};
const user2 = {
name: "정진경",
role: Role.USER, // 11
};
위의 예시와 같이 값이 모두 숫자인 enum
을 숫자형 enum 혹은 숫자 열거형 타입이라고 합니다.
문자형 열거형
enum의 멤버에는 숫자 말고도 문자열 값도 할당할 수 있습니다.
enum Language {
korean = "ko",
english = "en",
}
위와 같이 값이 문자열인 enum을 특별히 문자열 enum 이라고 부릅니다.
enum Role {
ADMIN,
USER,
GUEST,
}
enum Language {
korean = "ko",
english = "en",
}
const user1 = {
name: "정진경",
role: Role.ADMIN, // 0
language: Language.korean,// "ko"
};
enum을 사용하면 user1.language
같은 프로퍼티에 실수로 ko
라고 적었어야 할 것을 오타가 발생해 kos
로 적거나 하는 실수를 방지할 수 있습니다.
반응형