내일배움캠프 스파르타 코딩클럽
enum
enum 은 열거형 데이터 타입
상수 그룹화를 위해선 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);
또한, 컴파일 시에 자동으로 숫자 값으로 매핑되므로 따로 값을 할당할 필요가 없다.
( ex: enum Colors { red, green, blue } 라면 red 는 0 green 은 1, blue는 2 로 자동 매핑 )
- 하지만 특정 숫자 값으로 매핑되어야 하면 그것은 직접 할당을 해주면 된다.
( ex: enum colors { red = 1, green = 2, blue = 4} 처럼 직접 값을 지정할 수 있다. )
object literal( 객체 리터럴 )
코드 예시:
const obj = {
a: [1,2,3],
b: 'b',
c: 4
}
객체 리터럴은 키 + 키값의 쌍(pair)로 구성된 객체를 정의하는 방식
위 예제 코드에서는 a, b, c 라는 키가 있고 각각 [1,2,3,], 'b', 4 라는 값으로 바인딩 되어있다.
객체 리터럴에서는 어떤 타입의 값도 대입을 할 수 있다.
enum OR object literal
enum
- enum은 간단한 상수 값을 그룹화 해서 관리할 때 적합하다.
- 또한, enum은 상수 값이기 때문에 각 멤버의 값이 변하면 안된다는 조건이 있다.
객체 리터럴
- 객체 리터럴은 멤버의 값이나 데이터 타입을 맘대로 변경할 수 있다.
- 복잡한 구조와 다양한 데이터 타입을 사용해야 할 때는 객체 리터럴을 사용하면 좋다.
- 예시 :
let status = {
Pending: 0,
Approved: 1,
Rejected: 2
};
// 객체 리터럴은 속성 값과 데이터 타입을 변경할 수 있습니다.
status.Pending = 10; // 값 변경 가능
console.log(status.Pending); // 출력: 10
status.NewStatus = 3; // 새로운 속성 추가 가능
console.log(status.NewStatus); // 출력: 3
status = {
Pending: "PENDING",
Approved: "APPROVED",
Rejected: "REJECTED"
}; // 객체 전체를 재정의 가능
console.log(status.Pending); // 출력: "PENDING"
'TIL' 카테고리의 다른 글
TypeScript 강의 (8) ( 실습 : 별다방 ) (0) | 2024.07.29 |
---|---|
TypeScript 강의 (7) ( 유틸리티 타입 ) (0) | 2024.07.29 |
Chapter 6 최종프로젝트 시작 (1) (1) | 2024.07.24 |
Chapter 6 최종프로젝트 시작 (0) | 2024.07.24 |
TypeScript 강의 (5) ( const, readonly, any, unknown, union ) (0) | 2024.07.20 |