본문 바로가기

Front-end/Typescript

Enum

정의

enum(열거형)을 사용하여 상수 집합을 정의할 수 있음

enum을 사용하면 의도를 문서화 하거나 별개의 사례 집합을 더 쉽게 만들 수 있음

numeric enums

enum Direction {
  Up = 1,
  Down,
  Left,
  Right,
}
  1. Up 은 1로 초기화 됨
  2. 나머지 초기화 되지 않은 멤버들은 auto-increment가 적용됨
    1. Down = 2
    2. Left = 3
    3. Right = 4
enum Direction {
  Up,
  Down,
  Left,
  Right,
}
  • 초기화가 없을시 첫 멤버(Up)가 0으로 초기화됨
  • 나머지는 auto-increment됨
    • Down = 1
    • Left = 2
    • Right = 3
  • auto-increment 동작은 멤버의 value가 중요하지 않지만 구별이 필요할때 유용함

String enums

  • 각 멤버는 문자열 리터럴 또는 다른 문자열 열거형 멤버로 초기화 되어야 합니다.
enum Direction {
  Up = "UP",
  Down = "DOWN",
  Left = "LEFT",
  Right = "RIGHT",
}
  • auto-increment 동작은 없음
  • serialize가 잘됨
  • 멤버 자체의 이름에 관계없이 의미있고 읽을 수 있는 값을 제공함?

object vs enum

objectenum

속성을 자유로이 변경 가능 속성 변경 불가
리터럴 타입 보다 넓은 타입으로 타입 추론이 이루어짐 항상 리터럴 타입이 사용됨
속성 값으로 모든 값이 올 수 있음 문자열 또는 숫자만 허용

→ 같은 ‘종류’를 나타내는 여러 개의 숫자/문자열 을 다뤄야 하는경우, 각각의 이름을 붙여 코드의 가독성을 높이고 싶다면 enum 사용

'Front-end > Typescript' 카테고리의 다른 글

type vs interface  (0) 2022.11.23
Typescript Core  (0) 2022.11.23