Study/TypeScript

[TS] Enum | TypeScript 타입 스크립트 열거형 타입 이넘

M개발자 2023. 6. 26. 01:08
반응형
  • 여러가지 값에 각 이름을 부여하고 열거해서 사용하는 타입이다. 
  • 열거형 타입(Enum)은 자바스크립트에는 존재하지 않는 타입이다. 
enum Role {
  ADMAIN = 0,
  USER = 1,
  GUEST = 2,
}

const user = {
  name: "MinJ",
  role: Role.ADMIN
}

console.log(user) // { name: "MinJ", role: 0 }
  • 유저의 권한과 같은 여러 멤버를 갖는 값을 공통화하여 표기할 때 enum을 사용하면 안전하고 직관적으로 관리할 수 있다. 
enum Role {
  ADMAIN, // 0 자동 할당 
  USER, // 1 자동 할당
  GUEST, // 2 자동 할당
}

enum Role {
  ADMAIN = 10,
  USER, // 11 자동 할당
  GUEST, // 12 자동 할당 
}

enum Role {
  ADMAIN, // 0 자동 할당
  USER = 11, // 11 할당
  GUEST, // 12 자동 할당
}

 

  • 할당 값이 없을 경우 0부터 자동할당된다. 
  • 할당 값을 변경하고 싶다면 시작하는 위치에 값을 직접 할당할 경우 아래의 멤버에는 1씩 증가된 값이 할당된다. 

문자열 열거형 

  • enum의 멤버에는 숫자 외의 문자열 값도 할당할 수 있다.
enum Language {
  KOREAN = "ko",
  ENGLISH = "en",
}

const user = {
  name: "MinJ",
  role: Role.ADMIN,
  language: Language.KOREAN,
}

enum의 컴파일 결과는 객체다.

  • enum은 컴파일될 때 다른 타입과 달리 자바스크립트 객체로 변환된다. 
var Role;
(function (Role) {
    Role[Role["ADMIN"] = 0] = "ADMIN";
    Role[Role["USER"] = 1] = "USER";
    Role[Role["GUEST"] = 2] = "GUEST";
})(Role || (Role = {}));
var Language;
(function (Language) {
    Language["KOREAN"] = "ko";
    Language["ENGLISH"] = "en";
})(Language || (Language = {}));

출처! 

인프런 이정한 지식공유자님의 한 입 크기로 잘라먹는 타입스크립트

 

한 입 크기로 잘라먹는 타입스크립트 - 인프런 | 강의

문법을 넘어 동작 원리와 개념 이해까지 배워도 배워도 헷갈리는 타입스크립트 이제 제대로 배워보세요! 여러분을 타입스크립트 마법사🧙🏻‍♀️로 만들어드립니다., - 강의 소개 | 인프런

www.inflearn.com

 

반응형