const enum EDirection {
Up = 0,
Down = 1,
Left = 2,
Right = 3,
}
const a = EDirection.Up; // 3
const c = EDirection.Left; // 4
enum은 언제 쓰는가?? 여러개의 변수들을 하나의 그룹으로 묶고싶을때 사용하기는 하는데 개인적으로는 일반 객체를 많이 사용 할 것 같다..
const enum ODirection {
Up: 0,
Down: 1,
Left: 2,
Right: 3,
} as const //객체에서 as const를 빼면 number로 인식함 나는 정확한
값을 원함 그래서 as const를 붙여줌 readonly도 붙여짐 읽기전용 수정못함
const a = ODirection.Up; // 0
const c = ODirection.Left; // 2
enum과 객체의 차이점은 enum은 js변환 될때 사라지고 객체는 사라지지 않는다. js를 남겨야 될지 안남겨야 될지 고민일때는 남겨라
const obj = {
a: '123',
b: 'hello',
c: 'world'
} as const;
type Key = keyof typeof obj // 'a' | 'b' | 'c'
type Value = typeof obj[keyof typeof obj] //'123'|'hello'|'world'
- 위의 객체에서 key들만 뽑아내고 싶을 때 type Key = keyof typeof obj를 해주면 'a'|'b'|'c'가 나옴.
- 위의 객체에서 value들만 뽑고 싶을 때 type Value = typeof obj[keyof typeof obj]