ecoEarth 2023. 1. 16. 20:42

enum

  • 자바스크립트에는 없고 타입스크립트에만 있는 타입이다.
  • enum은 특정 값들의 집합을 의미하는 자료형
  • enumeration의 단어 뜻과 같이 그냥 특정값들을 나열하는 타입이다.

숫자형 enum

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

const up: Direction = Direction.Up;
// Direction = Direction.UP | Direction.Down | Direction.Left | Direction.Right
const leftOrRight: Direction.Left | Direction.Right = Direction.Left;

위의 예시에서 볼 수 있듯, 숫자형 enum은 마치 배열처럼 순서대로 숫자값을 가지고 있다.

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

console.log(Direction.UP, Direction.Down, Direction.Left, Direction.Right)
// 0, 200, 201, 202이 출력된다.
  • 다음과 같이 숫자를 중간에 할당할 수도 있다.
enum Direction {
  Up,
  Down = 200,
  Left,
  Right,
}

console.log(Direction[2])
// 200이 출력된다. 이런식으로도 호출할 수 있다.
  • 다음과 같이 배열같은 방식으로 호출할 수도 있다.

문자형 enum

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

복합 enum

enum BooleanLikeHeterogeneousEnum {
    No = 0,
    Yes = "YES",
}
// 권고하지 않음
  • 숫자형 enum과 문자형 enum을 같이 사용할 경우 유지보수에 어려움이 있으므로 권고하지 않는 방식이다.