Skip to content

7. 이넘이란?

Woo-Dong93 edited this page Nov 23, 2020 · 1 revision
  • 특정 값들의 집합을 의미하는 자료형입니다.

1. 숫자형 이넘

  • 초기화 하지 않으면 기본적인 값이 숫자, 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

2. 문자형 이넘

enum Shoes3 {
  Nike = '나이키',
  Adidas ='아디다스'
}
var myShoes2 = Shoes3.Nike;
console.log(myShoes2) // 출력 : 나이키

3. 이넘의 활용 사례

  • 이넘을 활용하지 않을 때
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'); // 에러

💒 Home

Home

📆 Planning

📋 요구 사항

📑 프로젝트 설계

📓 Api 명세서

📖 제품 백로그

📺 화면 기획서

📽️ Project

📖 도움말

📷 실행 화면

⚒️ 기술 스택

⚙️ 기술 특장점

✔️ Team Rule

그라운드 룰

☑️ 깃허브 사용 규칙

코딩 컨벤션 규칙

📝 Progress

🌿 1주차 Progress
☘️ 2주차 Progress
🍀 3주차 Progress
🍁 4주차 Progress
🌲 5주차 Progress

📚 학습 정리 공유

🛠️ 기술 관련 공유

Clone this wiki locally