정의
enum(열거형)을 사용하여 상수 집합을 정의할 수 있음
enum을 사용하면 의도를 문서화 하거나 별개의 사례 집합을 더 쉽게 만들 수 있음
numeric enums
enum Direction {
Up = 1,
Down,
Left,
Right,
}
- Up 은 1로 초기화 됨
- 나머지 초기화 되지 않은 멤버들은 auto-increment가 적용됨
- Down = 2
- Left = 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 |