. enum과 object literal
ENUM 복습
이넘은 열거형 데이터 타입
상수의 그룹화를 위해선 이넘이 아주 좋은 타입
코드의 가독성이 높아지고 명확한 상수값을 정의할 수 있다.
또한, 컴파일시 자동으로 숫자로 매핑되므로 따로 값을 할 당할 필요없다.
enum UserRole {
ADMIN = "ADMIN",
EDITOR = "EDITOR",
USER = "USER",
}
enum UserLevel {
NOT_OPERATOR, // 0
OPERATOR // 1
}
function checkPermission(userRole: UserRole, userLevel: UserLevel): void {
if (userLevel === UserLevel.NOT_OPERATOR) {
console.log('당신은 일반 사용자 레벨이에요');
} else {
console.log('당신은 운영자 레벨이군요');
}
if (userRole === UserRole.ADMIN) {
console.log("당신은 어드민이군요");
} else if (userRole === UserRole.EDITOR) {
console.log("당신은 에디터에요");
} else {
console.log("당신은 사용자군요");
}
}
const userRole: UserRole = UserRole.EDITOR;
const userLevel: UserLevel = UserLevel.NOT_OPERATOR;
checkPermission(userRole, userLevel);
object literal
옵잭트 리터럴의 예시
const obj = {
a: [1,2,3],
b: 'b',
c: 4
}
이넘과 흡사해 보이지만 CONST /LET을 사용가능하지만
키 + 쌍으로 구성된 객체를 정의하는 방식
언제 이넘을 쓰고 언제 옵잭트 리터럴을 쓸까
이넘은 다수의 상수값을 쓸 때 쓴다.
옵잭트는 객체에 다양한 쌍의 키와 밸류을 사용할 때 쓰면 좋다.