이넘(Enums) 이란?
이넘(Enums)
은 특정 값들의 집합을 의미하는 자료형이다.
예를 들어, 다음과 같은 목록이 이넘이 될 수 있다.
1
2
3
나이키
아디다스
뉴발란스
타입스크립트에서는 숫자형 이넘
과 문자형 이넘
을 지원한다.
숫자형 이넘
타입스크립트에서 숫자형 이넘은 아래와 같이 선언한다.
1
2
3
4
enum Shoes {
Nike = 1,
Adidas
}
초기 값을 지정할 경우 초기 값부터 차례로 1씩 증가한다.
1
2
Nike - 1
Adidas - 2
초기 값을 주지 않을 경우 0부터 차례로 1씩 증가한다.
1
2
3
4
5
6
7
enum Shoes {
Nike,
Adidas
}
let myShoes = Shoes.Nike;
console.log(myShoes); // 0
문자형 이넘
문자형 이넘은 숫자형 이넘과 개념적으로 비슷하지만, 런타임에서 차이가 있다.
우선 문자형 이넘은 이넘 값 전부 다 특정 문자 또는 다른 이넘 값으로 초기화를 해줘야 한다.
1
2
3
4
5
6
7
enum Shoes {
Nike = '나이키',
Adidas = '아디다스'
}
let myShoes = Shoes.Nike;
console.log(myShoes); // '나이키'
또한, 문자형 이넘에는 숫자형 이넘과는 다르게 auto-incrementing
이 없다.
이넘 활용사례
문자열이 들어와서 값을 비교하는 형식이 아닌 이넘의 속성으로 비교한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
enum Answer {
Yes = 'Y',
No = 'N',
}
function askQuestion(answer: Answer) {
if (answer === Answer.Yes) {
console.log('정답입니다');
}
if (answer === Answer.No) {
console.log('오답입니다')
}
}
askQuestion(Answer.Yes);
askQuestion('Y'); // Error
문자열을 넣으면 에러 발생 !
🧸 Feelings …
이넘은 다른 프로그래밍 언어를 사용해본 사람들이란 어렵지 않고 익숙할 거라고 말씀해주셨다. 그래서 그런지 나 또한 어려운 부분은 아니었다.
Reference
[캡틴판교 TS] 타입스크립트 입문 - 기초부터 실전까지
타입스크립트 핸드북
본 포스팅은 캡틴판교 강사님의
타입스크립트 입문 - 기초부터 실전까지
강의를 수강하고 난 후, 본인의 주관적인 견해에 의하여 작성되었습니다.