(TS) Enum

Mirrer·2022년 12월 26일
0

TypeScript

목록 보기
7/14
post-thumbnail

Enum

관련 값 모음을 구성하는 Type

Enum특정 값들의 집합을 의미하는 자료형으로 크게 숫자형, 문자형으로 분류할 수 있다.


숫자형 Enum

Typescript의 숫자형 Enum은 아래와 같이 선언한다.

enum Direction {
  Up = 1,
  Down,
  Left,
  Right
}

숫자형 Enum은 선언 시 부여한 초기 값부터 차례로 1씩 증가하며 만약 초기 값을 지정하지 않았다면 0부터 차례로 1씩 증가한다.

enum Direction {
  Up = 1,
  Down, // 2
  Left, // 3
  Right // 4
}

이렇게 선언된 숫자형 Enum아래와 같이 사용할 수 있다.

enum Purchase {
  No = 0,
  Yes = 1,
}

function buyItem(name: string, purchase: Purchase): void {
  // ...
}

buyItem("apple", Response.Yes);

숫자형 Enum에서 주의해야 될 점은 선언 시 Enum 값에 다른 Enum 타입의 값을 사용하면 선언하는 Enum의 첫 번째 값을 반드시 초기화 해야 한다.

enum Wrong {
  A = getSomeValue(),
  B, // Error, 초기화 필요
}

문자형 Enum

문자형 Enum은 숫자형 Enum과 개념적으로는 거의 비슷하며 다만, 런타임에서의 미세한 차이가 존재한다.

일단 문자형 Enum은 모든 값을 특정 문자 또는 다른 Enum 값으로 초기화 해야 한다.

또한, 숫자형 Enum과 다르게 auto-incrementing이 없어서 항상 명확한 값이 출력된다.

enum Direction {
  Up = "UP",
  Down = "DOWN",
  Left = "LEFT",
  Right = "RIGHT",
}

Reverse Mapping

Enum키(key)를 이용하여 값(value)를 얻을 수 있고, 값(value)을 이용하여 키(key)를 얻을 수도 있다.

이를 Reverse Mapping이라고 하며, 이는 Enum에만 존재하는 특징이다.

enum Enum {
  A
}

let a = Enum.A; // 키로 값을 획득
let keyName = Enum[a]; // 값으로 키를 획득

참고 자료

TypeScript: JavaScript With Syntax For Types.
React TypeScript Tutorial for Beginners - Codevolution
타입스크립트 입문 - 기초부터 실전까지 - 장기효

profile
memories Of A front-end web developer

0개의 댓글