[typescript] 열거형(Enum)의 중복 선언 방지

목차

열거형(Enum)이란?

열거형(Enum) 은 특정한 값들의 집합을 정의할 때 사용되는 TypeScript의 기능입니다. 여러 가지 선택지를 나타내거나 유사한 형식의 값들을 그룹으로 묶을 때 사용됩니다.

중복 선언 문제

기존에는 TypeScript에서 열거형을 정의할 때, 동일한 이름으로 여러 번 선언하여 변형할 수 있었습니다. 이는 실수로 중복 값이 정의될 수 있는 위험을 내포하고 있습니다.

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

enum Direction {
  Up = 5,
  // TypeError: Enum member 'Up' has already been initialized with a different value
}

중복 선언 방지하는 방법

TypeScript 2.7부터는 중복 선언을 방지하기 위해 const 열거형(Enum) 을 사용할 수 있습니다. 이를 이용하면 열거형에 대한 중복 선언을 방지하고 더 강력한 타입 추론을 가능하게 할 수 있습니다.

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

const enum Direction {
  // Error: Subsequent variable declarations must have the same type
  Up = 5,
}

결론

TypeScript 2.7부터 도입된 const 열거형은 중복 선언 문제를 방지하고 타입 안정성을 향상시킵니다. 중복 선언을 방지하기 위해 열거형을 사용할 때에는 const 열거형의 활용을 권장합니다.

참고 자료: TypeScript Handbook - Enums