타입 스크립트의 장점 중 하나는 enum을 사용할 수 있게 된다.
타입 스크립트 enum에서 별도의 값을 지정하지 않으면 숫자형 이넘이 되며 아래와 같이 0부터 차례대로 값을 할당받게 된다.
enum Shoes{
Nike,
Adidas
}
Shoes.Nike //0
Shoes.Adidas //1
이넘을 정의할 때 각 값에 대해 직접 값을 할당해주면 된다.
enum Shoes{
Nike = 10000,
Adidas = 20000
}
Shoes.Nike //10000
Shoes.Adidas //20000
enum Shoes{
Nike = '나이키',
Adidas = '아디다스'
}
Shoes.Nike //나이키
Shoes.Adidas //아디다스
정의한 이넘은 타입처럼 사용할 수 있다. 아래 예시를 보자.
enum Answer{
Yes = "yes",
No = "no"
}
function processAnswer(answer: Answer) {
if (answer === Answer.Yes) {
console.log("NICE~");
}else if (answer === Answer.No) {
console.log("WHY ?");
}
}
//string은 에러를 나타내게 된다.
//이넘에서 제공하는 데이터만 전달할 수 있게 된다.
processAnswer(Answer.Yes);
예시를 보면 processAnswer라는 함수의 인자로 전달할 answer의 타입을 string으로 할수도 있지만 Answer로 제한해주고 있는 모습니다. 이렇게 타입을 지정해줄 경우 조건문에 따라 특정 로직을 실행하는 등의 작업이 좀 더 명확해진다.