enum
은 JavaScript의 타입 수준 확장이 아닌 TypeScript가 가지는 몇 가지 기능 중 하나입니다.
enum
을 사용하면 개발자는 일련의 이름이 지정된 상수를 정의할 수 있습니다. enum
을 사용하면 의도를 문서화하거나 구별되는 경우의 집합을 만드는 것이 더 쉬워집니다. TypeScript는 숫자 및 문자열 기반의 enum
을 모두 제공합니다.
enum
은 다음과 같은 형태로 정의됩니다:
enum Color {
Red,
Green,
Blue,
}
위의 예제에서 Color
는 enum
의 이름이며, Red
, Green
, Blue
는 해당 enum
의 멤버들입니다. 각 멤버는 순차적으로 0부터 인덱스가 할당되지만, 이 값은 선택적으로 변경할 수 있습니다.
enum
을 사용하면 다음과 같이 상수 값을 나타내는 데 유용합니다:
let color: Color;
color = Color.Green;
console.log(color); // 출력: 1
enum
은 주로 숫자 값을 가지지만, TypeScript 2.4 이상부터는 문자열 값을 가지는 enum
도 지원됩니다. 예를 들어:
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT",
}
위의 예제에서 Direction
은 문자열 값을 가지는 enum
이며, 각 멤버는 해당 문자열을 나타냅니다.
enum
은 코드를 읽기 쉽게 만들어주고, 문자열이나 숫자와 관련된 상수들을 효과적으로 다룰 수 있도록 도와줍니다. 그러나 enum
을 사용할 때 주의할 점은, 타입 안전성을 보장하기 위해 상수 값 외에 다른 값이 할당되는 것을 방지해야 한다는 점입니다.