✅ enum
enum UserRole {
ADMIN = "ADMIN",
EDITOR = "EDITOR",
USER = "USER",
}
enum UserLevel {
NOT_OPERATOR,
OPERATOR
}
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);
👩💻 enum을 쓰는 경우
- 간단한 상수 값을 그룹화 해서 관리할 때 적합하다.
- 상수값이기 때문에 각 멤버의 값이 변하면 안된다.
✅ object literal
- 키 + 값 쌍으로 구성된 객체를 정의하는 방식
const obj = {
a: [1,2,3],
b: 'b',
c: 4
}
👩💻 Object literal 쓰는 경우
- 객체 리터럴은 멤버의 값이나 데이터 타입을 맘대로 변경할 수 있다.
- 복잡한 구조와 다양한 데이터 타입을 사용해야 할 때는 객체 리터럴을 사용한다.