Today Sangmin Learned
Published 2021. 6. 22. 17:02
[TypeScript] 이넘(enum) Web
728x90
이 글은 인프런의 TypeScript 입문 - 기초부터 실전까지 강의를 듣고 정리한 글입니다.

 

enum은 자바스크립트에는 없는, 타입스크립트 고유의 기능으로, 문자열 열거형이다.

enum Shoes {
  Nike = "nike",
  Adidas = "adidas",
  Sth = "sth",
  // 값을 지정하지 않는다면 0부터 시작. Shoes.Nike = 0, Shoes.Adidas = 1, ...
}

const myShoes = Shoes.Nike;
console.log(myShoes); // 'nike'

Shoes라는 enum을 만들었다. 그 안에 Nike, Adidas, Sth를 지정하였다.

Nike, Adidas, Sth와 같이 그냥 콤마로만 구분되어있고 어떠한 값도 지정되지 않은 상태가 기본 형태이다. 이 경우에 주석처리 해놨듯이 콘솔에 찍으면 enum 내 위치에 따라 0부터 시작되는(인덱스라고 생각하면 편하다) 값이 출력이 된다. 이를 숫자형 enum이라고 하고, 위 코드처럼 문자열 값을 넣어서 나열할수도 있다. 저 경우에는 부여한 문자열 그대로가 출력이 된다.

 

이를 실제로는 어떻게 쓸까?

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("Yes");
// 이넘을 이용해서 정의를 해줬음. enum에서 제공하는 데이터만 집어넣을 수 있음.

Answer라는 이름의 enum을 만든 뒤 그 Answer를 askQuestion의 파라미터로 받아와서 그 값이 Answer 내에 있는 Yes와 똑같다면 정답을, No와 똑같다면 오답을 콘솔에 출력하는 형태이다. enum을 파라미터로 받아오면, 그 함수에서는 enum 내에 있는 값만 사용할 수 있다.

profile

Today Sangmin Learned

@steadily-worked

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!