이넘(Enum)이란?
- 특정 값의 집합을 의미하는 데이터 타입
- 상수의 집합이라고도 표현 (여러개의 상수를 하나의 단위를 묶음)
enum ShoesBrand {
Nike,
Adidas,
NewBalance
}
let myShoesBrand = ShoesBrand.NewBalance; // 2
숫자형 이넘
- 이넘에 선언된 속성은 기본적으로 숫자 값을 가짐
- 속성 값이 숫자로 지정되는 이유는 타입스크립트의 내부 규칙 때문
- 타입스크립트를 자바스크립트로 변환하는 과정에서 0만 남게됨
enum Direction {
Up, // 0
Down, // 1
Left, // 2
Right // 3
}
console.log(Direction.Up) // 0
console.log(Direction[0]) // "Up"
이넘의 속성과 값이 거꾸로 연결되어 할당되는 것을 리버스 매핑(reverse mapping) 이라고 한다.
속성의 초기값을 변경하고 싶다면 아래와 같이 선언
enum Direction {
Up = 10, // 10
Down, // 11
Left, // 12
Right // 13
}
문자형 이넘
enum Direction {
Up = "up",
Down = "down",
Left = "left",
Right = "right"
}
console.log(Direction.Left); // "left"
혼합 이넘
enum Answer {
Yes = "yes",
No = 0
}
enum Authorization {
User, // 0
Admin, // 1
SuperAdmin = User + Admin, // 0 + 1 = 1
God = "god".length // 3
}
const 이넘
- 이넘을 선언하면 전역 객체로 생성이 되는데 그것을 방지하고 코드 양을 줄이기 위해 사용
const enum LogLevel {
Debug = "Debug",
Info = "Info",
Error = "Error"
}
'TYPESCRIPT' 카테고리의 다른 글
[Typescript] 타입 단언 (Type Assertion) (0) | 2024.09.23 |
---|---|
[Typescript] Generic(제네릭) (0) | 2024.08.01 |
[Typescript] 인터페이스(interface)[2] (0) | 2024.07.12 |
[Typescript] 인터페이스란? (interface)[1] (0) | 2024.07.09 |
[Typescript] 타입 종류 (0) | 2024.06.11 |