TypeScript : 이넘(enum)
enum은 특정 값들의 집합니다.
숫자형 enum
기본적으로 enum은 숫자로 접근 가능합니다.
enum Direction {
Up,
Down,
Left,
Right
}
Direction.Up; // 0
Direction["Up"]; // 0
Direction[0]; // Up
문자형 enum
가장 많이 사용하는 형태입니다.
주로 메뉴판 같은 고정된 값을 매핑할때 사용합니다.
enum Fruits {
Banana = 1000,
Apple = 500,
Orange = 1500
}
Fruits.Banana; // 1000
Fruits[1000]; // Banana
다양한 enum
enum Auth {
User,
Admin,
SuperAdmin = User + Admin,
Member = "123".length
}
Auth.Member; // 3
Auth.SuperAdmin; // 1 (0+1)
숫자형 접근이므로 User(0) Admin(1)이 더하여 1이 됩니다.
const enum logLevel {
Debug = "Debug",
Info = "Info",
Error = "Error"
}
const를 붙이면 되면 컴파일 코드양을 줄여줍니다.
다만 SuperAdmin = User + Admin 같은 형태의 enum은 사용 불가능 합니다.
enum 활용
학습 레벨 표시
A~E까지의 학습 레벨에 따라 안내 문구를 보여줍니다.
const enum Level {
A = '매우 우수',
B = '우수',
C = '보통',
D = '미흡',
E = '매우 미흡'
}
const student: object = {
name: 'Park',
skill: 'Design',
level: Level['E']
}
console.log(student); // "name" : "park", "skill" : "Design", "level" : "매우 미흡"