이넘(Enums)
이넘은 특정 값들의 집합을 의미하는 자료형입니다. 예를 들면 아래와 같은 목록이 이넘이 될 수 있습니다.
숫자형 이넘
타입스크립트에서 숫자형 이넘은 아래와 같이 선언합니다.
enum Book {
해리포터 = 1,
반지의제왕,
삼국지
}
위와 같이 숫자형 이넘을 선언할 때 초기 값을 주면 초기 값부터 차례로 1씩 증가합니다.
해리포터 - 1
반지의제왕 -2
삼국지 -3
만약 아래와 같이 초기 값을 주지 않으면 0부터 차례로 1씩 증가합니다.
enum Book {
해리포터 , //0
반지의제왕,//1
삼국지//2
}
숫자형 이넘 사용하기
이렇게 선언한 이넘은 아래와 같이 사용할 수 있습니다.
enum Book {
해리포터 , //0
반지의제왕,//1
삼국지//2
}
function bookchecking(bookname:string , booknumber:Book):void{
console.log(bookname);
console.log(booknumber);
}
bookchecking('해리포터',Book.해리포터);
그리고 숫자형 이넘에서 주의할 점은 선언할 때 만약 이넘 값에 다른 이넘 타입의 값을 사용하면 선언하는 이넘의 첫 번째 값에 초기화를 해줘야 한다는 점입니다.
enum Wrong {
A = getSomeValue(),
B, // Error, 초기화가 필요합니다.
}
문자형 이넘
문자형 이넘은 앞에서 살펴본 숫자형 이넘과 개념적으로는 거의 비슷합니다. 다만, 런타임에서의 미세한 차이가 있습니다.
일단 문자형 이넘은 이넘 값 전부 다 특정 문자 또는 다른 이넘 값으로 초기화 해줘야 합니다.
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT",
}
또한, 문자형 이넘에는 숫자형 이넘과는 다르게 auto-incrementing이 없습니다. 대신 디버깅을 할 때 숫자형 이넘의 값은 가끔 불명확하게 나올 떄가 있지만 문자형 이넘은 항상 명확한 값이 나와 읽기 편합니다.
'js > TypeScript' 카테고리의 다른 글
TypeScript - Generics (0) | 2022.07.27 |
---|---|
TypeScript - Class (0) | 2022.07.27 |
TypeScript - 인터페이스 (0) | 2022.07.27 |
TypeScript - 함수 (0) | 2022.07.27 |
TypeScript - Union Type (0) | 2022.07.27 |