enum, keyof, typeof

모두의희망·2023년 1월 9일
0

TypeScript

목록 보기
4/11
post-thumbnail

enum

const enum EDirection {        
  Up = 0,
  Down = 1,
  Left = 2,
  Right = 3,
}
const a = EDirection.Up; // 3
const c = EDirection.Left; // 4

enum은 언제 쓰는가?? 여러개의 변수들을 하나의 그룹으로 묶고싶을때 사용하기는 하는데 개인적으로는 일반 객체를 많이 사용 할 것 같다..

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를 남겨야 될지 안남겨야 될지 고민일때는 남겨라

keyof와 typeof

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]
profile
개발을 진정성 있게 다가가겠습니다.

0개의 댓글