물론입니다! enum
은 열거형(Enumeration) 타입으로, 타입스크립트에서 일련의 관련된 값들을 친숙한 이름으로 그룹화할 수 있게 해줍니다. 이를 통해 코드의 가독성과 유지 보수성을 향상시킬 수 있습니다. 타입스크립트의 enum
은 몇 가지 중요한 특징을 가지고 있습니다.
기본 Enum 사용
기본적으로, enum
은 0부터 시작하여 멤버들의 번호를 할당합니다. 멤버에 수동으로 값을 할당하지 않으면 자동으로 증가합니다.
enum Color {
Red, // 0
Green, // 1
Blue // 2
}
let c: Color = Color.Green;
이 경우 Color.Green
은 1
입니다.
수동 값 할당
enum
의 각 멤버에 수동으로 값을 할당할 수 있습니다. 값은 숫자일 수도 있고, 문자열일 수도 있습니다.
enum Color {
Red = 1,
Green = 2,
Blue = 4
}
let c: Color = Color.Green; // c는 2입니다.
문자열 열거형을 사용할 경우, 각 멤버는 문자열 리터럴 또는 다른 문자열 열거 멤버로 초기화되어야 합니다.
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT"
}
Enum 멤버 사용
enum
의 멤버에 접근하려면, enum
이름을 사용하여 멤버에 접근합니다.
enum Response {
No = 0,
Yes = 1,
}
function respond(recipient: string, message: Response): void {
// ...
}
respond("Princess Caroline", Response.Yes);
Enum 역 매핑
숫자 열거형에서는, enum
으로부터 값과 이름을 모두 알아낼 수 있는 이중 매핑을 생성합니다.
enum Color {
Red = 1,
Green,
Blue
}
let colorName: string = Color[2];
// colorName은 'Green'이 됩니다
Enum과 Union Types
특정 enum
멤버만을 허용하는 경우, 유니언 타입을 사용하여 enum
을 더욱 강력하게 사용할 수 있습니다.
enum LogLevel {
ERROR, WARN, INFO, DEBUG
}
function logMessage(level: LogLevel.ERROR | LogLevel.WARN) {
// ...
}
logMessage(LogLevel.ERROR); // 올바름
logMessage(LogLevel.DEBUG); // 오류
enum
은 코드의 명확성을 높이고 의도를 명확히 표현하는데 도움을 줍니다. 하지만 enum
을 사용할 때는 추가적인 코드가 생성되며, 문자열과 숫자 혼합 사용 시에는 주의가 필요합니다.
'typescript' 카테고리의 다른 글
[240627 TIL] 타입 검사기! (0) | 2024.06.26 |
---|---|
[ 타입스크립트 7 ] tsconfig (0) | 2024.01.12 |
[ 타입스크립트 5 ] 기본타입, 기본문법 (1) | 2024.01.11 |
[ 타입스크립트 4 ] 기본정리 (0) | 2024.01.11 |
[ 타입스크립트 3 ] 설치 (0) | 2024.01.11 |