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

Lumpen·2022년 9월 6일
0

TIR

목록 보기
34/40

enum

열거형은 해당 타입으로 사용할 수 있는 값을 열거하는 것으로
키를 값에 할당하는 순서가 없는 자료구조다

키가 컴파일 타임에 고정된 객체

타입스크립트에만 존재하는 기능으로 컴파일 시
자바스크립트의 즉시 실행 함수가 생성되어 tree-shaking이 되지 않는다 -> 쓴다면 const enum을 사용하자

열거형의 이름은 단수 명사로, 첫 문자는 대문자로, key도 첫 문자는 대문자로 하는 것이 관례

enum Lang ={
  Go,
  Python,
  Javascript
}

타입스크립트가 자동으로 열거형의 각 멤버의 숫자를 추론하지만
명시적으로 줄 수 있다

enum Lang ={
  Go = 0,
  Python = 1,
  Javascript = 2
}

enum의 값은 객체나 배열처럼 참조가 가능하다

Lang.Go
Lang['Python']
Lang[0]

열거형은 여러개로 나눠 정의 후 합치도록 할 수도 있다
여러 열거형중 한 가지 값만 추론이 가능하기 때문에
명시적으로 값을 할당하는 것이 좋다

enum Lang = {
  Go = 0,
  Python = 1,
}

enum Lang = {
  Javascript = 2
}

계산된 값을 사용할 수도 있고, 빠진 것은 추론도 한다

enum Lang ={
  Go = 100,
  Python = 200 + 300,
  Javascript // 500의 다음 값인 501로 추론
}

열거형에 문자열 값과 문자열 + 숫자 혼합 값을 사용할 수 있다

enum 타입은 정의되지 않은 key 값에 대한 접근을 허용한다
사용 시 const enum을 사용하면 안전하게 사용 가능

const enum

const enum Lang ={
  Go = 0,
  Python = 1,
  Javascript = 2
}

const enum 타입은 역방향 찾기를 지원하지 않으므로
자바스크립트 객체와 비슷해진다

Lang[0] // TS2476: const enum 멤버는 문자열 리터럴로만 접근할 수 있음
profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글