-
Notifications
You must be signed in to change notification settings - Fork 5
7. 이넘이란?
Woo-Dong93 edited this page Nov 23, 2020
·
1 revision
- 특정 값들의 집합을 의미하는 자료형입니다.
- 초기화 하지 않으면 기본적인 값이 숫자, 0부터 시작, 1씩 증가하게 됩니다.
// 숫자형 이넘
enum Shoes {
Nike, // 0
Adidas // 1
}
// 10을 넣으면 1씩 증가, 다음 숫자는 11
enum Shoes2 {
Nike2 = 10, // 10
Adidas2 // 11
}
//Shoes. 하면 Nike, Adidas가 추론되어 보여지게 됩니다.
var myShoes = Shoes.Nike;
// Nike의 실제 값은 0, 별도의 값을 지정하지 않으면 숫자형 이넘으로 취급합니다.
console.log(myShoes) // 출력 : 0
enum Shoes3 {
Nike = '나이키',
Adidas ='아디다스'
}
var myShoes2 = Shoes3.Nike;
console.log(myShoes2) // 출력 : 나이키
- 이넘을 활용하지 않을 때
function askQuestion(answer: string) {
if (answer === 'yes') {
console.log('정답입니다.');
}
if (answer === 'no') {
console.log('오답입니다.');
}
}
askQuestion('yes');
// 밑에는 모두 문자열 이기 때문에 askQuestion함수에는 들어가게 됩니다.
askQuestion('예스');
askQuestion('y');
askQuestion('Yes');
- 이넘을 활용할 때
- 이넘을 이용해서 정의하면 이넘이 제공하는 데이터만 인자로 넣을 수 있습니다.
- 드롭 다운 등 목록이 필요한 형태에서 이넘을 정의해서 사용하면 정확한 코드와 예외처리 가 줄어들게 될것입니다.
enum Answer {
Yes = 'Y',
No = 'N',
}
function askQuestion2(answer: Answer) {
if (answer === Answer.Yes) {
console.log('정답입니다.');
}
if (answer === Answer.No) {
console.log('오답입니다.');
}
}
askQuestion2(Answer.Yes); // 가능
askQuestion2('예스'); // 에러
askQuestion2('y'); // 에러
askQuestion2('Yes'); // 에러