TIR: 타입스크립트 프로그래밍 | 3. 타입의 모든것 / enum (열거형) (2) - 220908

Lumpen·2022년 9월 10일
0

TIL

목록 보기
143/244
post-custom-banner

const enum

const enum은 불안전한 접근을 막고
역방향 찾기를 지원하지 않는다

const enum은 아무런 자바스크립트 코드도 생성하지 않으며
대신 필요한 곳에 열거형 멤버의 값을 채워넣는다

tsc 플래그

다른 사람의 타입스크립트 코드에 정의된 const enum을 가져왔을 때
채워넣기 기능 때문에 문제를 일으킬 수 있다
컴파일 한 이후에 코드를 갱신하면 버전에 따라 다른 값의 cosnt enum을 갖게 되는 것이기 때문에 const enum을 사용할 때에는
채워넣기 기능을 되도록 피하고 스스로 제어할 수 있는 곳에서만
사용해야 한다
배포할 곳에는 특히 주의해야 한다
const enum의 runtime 코드 생성을 활성화 하려면 tsconfig.json 파일에서 preserveConstEnums 설정을 true로 바꾼다


const enum Flippable {
  Burger,
  Chair,
  Cup
}

function flip(f: Flippable) {
  return 'flipped it'
}

filp(Flippable.Chair) // 'flipped it'
filp(12) // 'flipped it' 

const enum을 그냥 사용하게되면 모든 숫자를 열거형에 할당할 수 있다
이는 타입스크립트를 사용하는 사람이 원하는 동작이 아닐 것..
문자열 값을 갖는 열거형을 사용하면 해결할 수 있다

const enum Flippable {
  Burger = 'Burger',
  Chair = 'Chair',
  Cup = 'Cup'
}

function flip(f: Flippable) {
  return 'flipped it'
}

filp(Flippable.Chair) // 'flipped it'
filp(12) // 에러 TS2345
filp(Flippable.Hat) // 에러 TS2345

열거형은 사용하는 방법이 까다롭기 때문에 멀리하는 것이 좋다
그래도 사용한다면 const enum과 문자열을 할당하는 방법으로

profile
떠돌이 생활을 하는. 실업자, 부랑 생활을 하는
post-custom-banner

0개의 댓글