[typescript] 열거형(Enum) 멤버에 추가 속성 추가하기

TypeScript에서는 열거형(Enum)을 사용하여 관련된 상수들을 그룹화할 수 있습니다. 기본적으로, 각 열거형 멤버는 0부터 시작하는 인덱스를 갖고 있습니다.

하지만, 때때로 열거형 멤버에 추가적인 속성을 필요로 할 수 있습니다. 이러한 경우, 다음과 같이 열거형 멤버에 추가 속성을 추가하여 사용할 수 있습니다.

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

interface DirectionProperties {
  displayName: string;
  value: number;
}

const directions: Record<Direction, DirectionProperties> = {
  [Direction.Up]: { displayName: "Up", value: 1 },
  [Direction.Down]: { displayName: "Down", value: 2 },
  [Direction.Left]: { displayName: "Left", value: 3 },
  [Direction.Right]: { displayName: "Right", value: 4 }
};

위의 예시에서, 우리는 Direction 열거형에 displayNamevalue라는 추가 속성들을 정의하고 있습니다. 그리고 directions 변수를 통해 각 열거형 멤버에 대한 추가적인 속성을 설정하였습니다.

이제, 각 Direction 멤버를 사용할 때 추가 속성에 접근할 수 있습니다.

console.log(directions[Direction.Up].displayName); // "Up"
console.log(directions[Direction.Down].value); // 2

이와 같이 TypeScript에서는 열거형(Enum) 멤버에 추가 속성을 추가하여 유연하고 강력한 코드를 작성할 수 있습니다.

더 자세한 정보는 TypeScript 공식 문서를 참고하세요.


참고자료

  1. TypeScript 공식 문서: https://www.typescriptlang.org/docs/handbook/enums.html