-
(TypeScript) - TypeScript Enum 타입개발/TypeScript 2025. 8. 19. 11:48반응형
■ 열거형 타입
: 열거형 타입 enum 은 여러가지 값들에 각각 이름을 부여해 열거해두고 사용하는 타입을 말한다.
enum Role { ADMIN = 0, USER = 1, GUSET = 2, } const user1 = { name: '이정환', role: Role.ADMIN, // 0 <- 관리자 }; const user2 = { name: '홍길동', role: Role.USER, // 1 <- 일반 유저 }; const user3 = { name: '송길동', role: Role.GUSET, // 2 <- 게스트 };그러면 enum 은 왜 사용할까?
enum 으로 지정하면 role 0 으로 저장되지만,
enum 의 Role.ADMIN 과 같이 문자로 정의된 것을 보고 어떤 역할을 하는 지 개발자가 바로 알아볼 수 있다.
이렇게 숫자로 지정되는 enum 을 숫자형 enum 이라고 한다.
enum Role { ADMIN, USER, GUSET, }숫자를 따로 지정을 해주지 않아도 0부터 1씩 추가되어 순서대로 지정되니 생략해도 무방하다.
enum Language { korea = 'ko', english = 'en', }enum 은 숫자 말고 문자로도 지정이 가능하다.
const user1 = { name: '이정환', role: Role.ADMIN, // 0 <- 관리자 language: Language.korea, }; const user2 = { name: '홍길동', role: Role.USER, // 1 <- 일반 유저 language: Language.english, };더불어 enum을 사용하면 개발자들은 헷갈리지 않을 수 있다.
왜냐하면 language 를 문자 그대로 'ko' 이런식으로 표기했다 생각해보자.
그러면 다음에 객체를 생성할 때 내가 한국어를 지정할 때 'ko' 를 썼는지 'Ko' 를 썼는지 기억이 안날 수 있다.
그러나 enum 을 사용하면 기존에 지정된 enum 만 불러오면 틀리지 않고 객체 생성이 가능한 것이다.
var Role; (function (Role) { Role[Role["ADMIN"] = 0] = "ADMIN"; Role[Role["USER"] = 1] = "USER"; Role[Role["GUSET"] = 2] = "GUSET"; })(Role || (Role = {}));그리고 enum 은 특이하게 컴파일을 해도 기존의 TypeScript 가 컴파일하면 타입이 사라졌던 것과는 다르게 enum 은 자바스크립트 객체로 변환되어 남아있게 된다.
language: Language.english,따라서 코드 상에서 다음과 같이 값을 사용하듯이 사용이 가능하다.
반응형'개발 > TypeScript' 카테고리의 다른 글
(TypeScript) - TypeScript void 와 never 타입 (0) 2025.08.19 (TypeScript) - Any 타입과 Unknown 타입 (0) 2025.08.19 (TypeScript) - TypeScript 타입 별칭과 인덱스 시그니처 (0) 2025.08.19 (TypeScript) - TypeScript 객체 (0) 2025.08.18 (TypeScript) - TypeScript 배열과 튜플 (0) 2025.08.18