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 내에 있는 값만 사용할 수 있다.
'Web' 카테고리의 다른 글
[TypeScript] Promise 타이핑 (0) | 2021.06.24 |
---|---|
[TypeScript] 제네릭(Generic) (0) | 2021.06.23 |
[TypeScript] 유니온 타입(Union Type), 인터섹션 타입(Intersection Type) (0) | 2021.06.22 |
[TypeScript] 타입, 타입과 인터페이스의 차이 (0) | 2021.06.22 |
[TypeScript] 인터페이스 (0) | 2021.06.22 |