Enum은 상수 집합으로도 불리는 특정 값의 집합을 의미하는 데이터 타입이다. 예를 들어,
enum Fruits {
Apple,
Banana,
Kiwi
}
let fruit1 = Fruits.Apple;
let fruit2 = Fruits.Banana;
console.log(fruit1);
console.log(fruit2);
객체의 속성에 접근하듯 사용한다. 그렇다면 fruit
과 fruit2
에는 어떤 값이 들어갈까? 위 코드의 결과를 확인해보면 0과 1이 나오는 것을 알 수 있다.
Enum에 선언된 속성은 기본적으로 숫자 값을 가진다.
enum Fruits {
Apple, // 0
Banana, // 1
Kiwi, // 2
Grape, // 3
타입스크립트의 내부적인 특징 때문에 0부터 1씩 증가하는 숫자를 가진다. 만약, Apple
에 10을 할당하게 되면 10부터 1씩 증가하게 된다.
문자형 Enum은 말 그대로 문자열을 연결한 것으로 자동으로 지정되는 숫자형과 달리 직접 모든 속성값에 지정해야 한다.
enum Direction {
Up = 'Up',
Down = 'Down',
Left = 'Left',
Right = 'Right'
}
문자형 Enum은 숫자형과 비교했을 때 직접 지정해야 하는 번거로움이 있지만 직관적이라는 장점이 있다.