728x90
반응형
enum이란?
특정 값들의 집합을 의미하는 자료형으로 어떠한 집합의 데이터 타입이다.
enum Shoes{
Nike,
Adidas,
puma
}
const myShoes = Shoes.Nike
console.log(myShoes)
Shoes라는 집단을 만들었다. 해당 데이터를 가지고 변수를 만들었는데 콘솔로 찍으면 0 이 나오게 된다.
이넘을 썼을 때 별도의 값을 지정해주지 않으면 숫자형 enum으로 취급을 하게 된다.
그래서 Shoes.Nike는 첫번 째 값이 0으로 시작된다.
// 초기화를 할당하지 않으면 기본값은 0부터 증가
enum Shoes{
Nike = 10,
Adidas,
puma
}
const myShoes = Shoes.Adidas
console.log(myShoes) //11
Nike = 10 부터 1씩 증가하게 된다. 새로 만들어진 변수는 1씩 증가해서 콘솔에 11이 찍히게 된다.
//넘버타입이 나닌 스트링으로 지정했을 때
enum Shoes{
Nike = '나이키'
Adidas = '아디다스',
puma
}
const myShoes = Shoes.Nike
console.log(myShoes) //'나이키'
[enums을 활용한 예제]
function askQuestion(answer: string) {
if(answer === 'YES'){
console.log('정답')
}
if(answer === 'NO'){
console.log('틀림')
}
}
askQuestion('yes')
askQuestion('Y')
askQuestion('정답')
매개변수 answer은 string타입이기에 함수 호출시에 yes에 대한 다양한 형태의 문자를 받아서 사용할 수 있다.
이 모습을 더 구체적으로 값으로 제한을 할 수 있다.
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)//이넘에서 제공하는 값만 넘길 수 있게 됨
파라미터의 값이 단순한 문자형태가 아닌, enum으로 만든 타입인지에 대해 비교하게 된다.
드롭다운 등 목록이 필요한 형태는 enum을 활용하여 정확한 코드나 예외처리 케이스에 유용하다.
728x90
'programming language > TypeScript' 카테고리의 다른 글
제네릭을 이용한 타입 정의 (0) | 2022.12.15 |
---|---|
ts에서 class를 사용할 때 (0) | 2022.12.14 |
연산자를 이용한 타입 정의_유니온, 인터섹션 (1) | 2022.12.06 |
타입스크립트 interface (0) | 2022.12.04 |
ts any, void (0) | 2022.12.03 |
댓글