-
[TS] Enum(열거형) 타입TypeScript 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
로 적거나 하는 실수를 방지할 수 있습니다.반응형'TypeScript' 카테고리의 다른 글
[TS] 타입 별칭, 인덱스 시그니처 (0) 2024.06.10 [TS] 배열 타입 정의 방법, 객체 타입 정의 방법 (1) 2024.06.09 [TS] 원시 타입, 비원시 타입, 리터럴 타입, 타입 어노테이션 (0) 2024.06.09 [TS] 타입별칭과 인터페이스 (0) 2023.07.28