[꼼꼼한 개발자] 꼼코더

[TypeScript(TS)] - enum 타입이란? 간단하고 쉽게 이해하기 (예제코드) 본문

TypeSctript(TS)

[TypeScript(TS)] - enum 타입이란? 간단하고 쉽게 이해하기 (예제코드)

꼼코더 2023. 8. 29. 15:54
반응형

🧹 간단 정리

enum 타입은 변하지 않는 것을 묶어놓은(열거한) 타입이다.

ex) > enum Tier {Gold, Platinum, Diamond} 

 

(자세한 내용은 아래참고)

 

🙋🏻‍♂️ enum 타입 소개

enum은 열거형(enumaration)의 줄임말로, 연관된 상수들을 묶어서 사용하는 타입이다.

여러 개의 관련된 값을 한 곳에 모아 놓음으로써 가독성과 유지보수성을 향상시킬 수 있다.

enum은 주로 숫자나 문자열과 연결된 값들을 나타내는데 사용된다.

 

👍🏻 enum 타입의 장단점

장점

  • 가독성 향상: 코드 내에서 명시적인 이름을 사용하여 상수를 참조할 수 있다.
  • 유지보수 용이성: 관련된 상수들을 그룹화하여 관리하므로 코드 수정 시 편리하다.

단점

  • 타입 안정성 감소: enum 값은 숫자로도 접근 가능하므로 타입 안정성이 떨어질 수 있다.
  • 번거로움: 값의 추가나 변경 시 enum 정의를 수정해야 하는 번거로움이 있을 수 있다.

 

🧑🏻‍💻 enum 타입 사용 예제

열거된 각 멤버는 별도의 값이 설정되지 않은 경우 기본적으로 0부터 시작한다.

아래 코드에서 sarha 변수에 할당된 값은 3.

설정된 Team 열거형 데이터의 Designer 멤버 값이 숫자 3이기 때문.

 

// enum 정의
enum Team {
  Manager,   // 0
  Planner,   // 1
  Developer, // 2
  Designer   // 3
}

// 값 할당 예제
let sarha: number = Team.Designer; // (enum member) Team.Designer = 3

 

enum에 설정된 아이템에 값을 할당할 수도 있다.

값이 할당되지 않은 아이템은 이전 아이템의 값에 +1된 값이 설정된다.

// 값 할당 및 순서 예제
enum TeamWithValues {
  Manager   = 101,
  Planner   = 208,
  Developer = 302,
  Designer  // 303 (previous value + 1)
}

let yamoo9: number = TeamWithValues.Manager; // (enum member) TeamWithValues.Manager = 101
let sarha: number = TeamWithValues.Designer; // (enum member) TeamWithValues.Designer = 303

// 숫자 값을 통한 enum 멤버 이름 추출
let role: string = TeamWithValues[302]; // 'Developer'

 

출처 (https://yamoo9.gitbook.io/typescript/types/enum)

 

💁🏻‍♂️ 결론

enum 타입은 연관된 상수들을 정의하고 사용함으로써 가독성과 유지보수성을 향상시키는데 도움을 준다.

하지만 타입 안정성이 감소하고 값 변경 시 번거로움이 있을 수 있으므로 적절한 상황에서 사용하는 것이 좋다.

Comments