이넘
in Study / Typescript
타입스크립트 타입 이넘이란?
이넘이란?
이넘(enum) 은 특정 값의 집합을 의미하는 데이터 타입이다.
여러 개의 상수를 하나의 단위로 묶으면 이넘이 된다. 비슷한 성격이나 같은 범주에 있는 상수를 하나로 묶어 더 큰 단위의 상수로 만드는 것이 이넘의 역할이다.
- 삼성
- 엘지
- 애플
숫자형 이넘
enum Number {
First,
Second,
Third ,
}
속성 값이 숫자로 지정되는 이유는 타입스크립트의 내부 규칙 때문에 그렇다.
console.log(Direction.First); //0
console.log(Direction[0]); // 'First'
이넘의 속성과 값이 거꾸로 연결되어 할당되는 것을 리버스 매핑이라고 한다.
- 타입스크립트 이넘에 선언된 속성은 기복적으로 숫자 값을 갖는다.
enum Number {
First = 10,
Second, // 11
Third, // 12
}
첫 번째 속성이 시작 값을 변경하더라도 순서대로 선언된 이넘 속성의 값은 1씩 증가하는 규칙이 있다.
문자형 이넘
문자형 이넘이란 이넘의 속성 값에 문자열을 연결한 이넘을 의미한다.
- 모든 속성 값을 다 문자열로 지정해 주어야 하고, 선언된 속성 순서대로 값이 증가하는 규칙도 없다.
enum Number {
First = 'First',
Second = 'Second',
Third = 'Third',
}
속성 이름과 동일한 문자열로 관리하는 것도 일반적인 코딩 규칙이다.
const 이넘
const
이넘이란 이넘을 선언할 때 앞에 const
를 붙인 이넘을 의미한다.
const enum logNumber {
First = 'First',
Second = 'Second',
Third = 'Third',
}
const
를 이넘 앞에 붙이는 이유는 컴파일 결과물의 코드양을 줄이기 위해서다.
- 항상 속성에 고정 값만 넣어 주어야 한다.
혼합 이넘
숫자와 문자열을 섞어서 선언할 수 있다.
enum Answer {
Yes = 'Yes',
No = 1
}