
여러 개의 상수 값에 이름을 부여해 열거형(Enumeration)으로 정의하고 사용할 수 있도록 해주는 타입
const user1 = {
name: "KJY",
role: 0,// <-- 관리자
}
const user2 = {
name: "홍길동",
role: 1, // <-- 일반 사용자
}
role의 숫자가 어떤 역할인지 한눈에 알기 어렵고, 코드 가독성이 떨어짐enum을 활용enum UserRole {
ADMIN = 0, // 관리자
USER = 1, // 일반 사용자
GUEST = 2, // 게스트
}
enum 키워드를 사용해 열거형 타입을 선언=로 지정const user1 = {
name: "KJY",
UserRole: UserRole.ADMIN
}
const user2 = {
name: "홍길동",
UserRole: UserRole.USER
}
const user3 = {
name: "이순신",
UserRole: UserRole.GUEST
}
role 속성에 숫자를 직접 쓰지 않고, UserRole.ADMIN과 같이 명확한 이름으로 사용 가능enum UserRole {
ADMIN, // 0
USER, // 1
GUEST, // 2
}

ADMIN에 10을 주고 코드를 실행하게 되면 그 아래는 11, 12와 같이 자동으로 할당enum Language {
KOREAN = "ko",
ENGLISH = "en",
}
숫자형 Enum과 동일한 방식으로 enum 키워드로 선언값을 생략할 수 있는 숫자형 enum과 달리, 문자형은 생략 불가
const user1 = {
name: "KJY",
Language: Language.KOREAN,
};
const user2 = {
name: "홍길동",
Language: Language.ENGLISH,
};
const user3 = {
name: "이순신",
Language: Language.KOREAN,
};
"ko", "en"같은 문자열 값을 직접 쓰는 대신 Language.KOREAN을 사용함으로써 의미가 명확해지고, 코드 자동완성도 가능한 입 크기로 잘라먹는 타입스크립트
https://www.inflearn.com/course/한입-크기-타입스크립트/dashboard