타입스크립트 enum 사용 예제
타입스크립트( Typescript )의 enum 키워드는 여러 개의 관련된 상수 값을 하나의 이름으로 묶어 사용하는 열거형 자료형이다.
enum은 상태, 방향, 권한, 사용자 등급처럼 미리 정해진 값의 집합을 표현할 수 있다.
enum을 사용하면 숫자나 문자열 값을 의미가 있는 이름으로 값을 구분할 수 있다.
타입스크립트의 enum은 숫자 enum과 문자열 enum으로 구분된다.
숫자 enum은 각 항목에 숫자 값을 할당하며, 값을 지정하지 않으면 일반적으로 0부터 순서대로 증가한다.
문자열 enum은 각 항목에 명확한 문자열 값을 지정한다.
타입스크립트에서 enum은 서로 연관된 고정된 선택값을 하나의 타입으로 정의하여 사용할 수 있다.
⊙
let role = "admin";⊙
enum UserRole {
Admin,
User,
Guest
}⊙
const role: UserRole = UserRole.Admin;⊙
사용자 권한
→ Admin / User / Guest
주문 상태
→ Pending / Paid / Shipped / Cancelled
테마
→ Light / Dark
방향
→ Up / Down / Left / Right⊙
enum Direction {
Up,
Down,
Left,
Right
}⊙
const direction = Direction.Up;
console.log(direction);⊙
function move(direction: Direction) {
if (direction === Direction.Up) {
console.log("위로 이동합니다.");
}
}
move(Direction.Up);⊙
enum HttpStatus {
Success = 200,
NotFound = 404,
ServerError = 500
}⊙
const status = HttpStatus.Success;
console.log(status);⊙
enum UserRole {
Admin = "ADMIN",
User = "USER",
Guest = "GUEST"
}⊙
const role: UserRole = UserRole.Admin;
console.log(role);⊙
enum OrderStatus {
Pending = "PENDING",
Paid = "PAID",
Shipped = "SHIPPED",
Cancelled = "CANCELLED"
}⊙
interface Order {
id: number;
status: OrderStatus;
}
const order: Order = {
id: 1,
status: OrderStatus.Paid
};⊙
if (order.status === OrderStatus.Paid) {
console.log("결제가 완료된 주문입니다.");
}⊙
enum Theme {
Light = "LIGHT",
Dark = "DARK"
}
function changeTheme(theme: Theme) {
console.log(`테마 변경: ${theme}`);
}⊙
changeTheme(Theme.Dark);⊙
enum OrderStatus {
Pending = "PENDING",
Paid = "PAID",
Shipped = "SHIPPED",
Cancelled = "CANCELLED"
}
function getOrderMessage(status: OrderStatus) {
switch (status) {
case OrderStatus.Pending:
return "결제를 기다리고 있습니다.";
case OrderStatus.Paid:
return "결제가 완료되었습니다.";
case OrderStatus.Shipped:
return "상품이 배송 중입니다.";
case OrderStatus.Cancelled:
return "주문이 취소되었습니다.";
}
}⊙
console.log(getOrderMessage(OrderStatus.Shipped));⊙
enum UserRole {
Admin = "ADMIN",
User = "USER",
Guest = "GUEST"
}
interface User {
name: string;
role: UserRole;
}⊙
const user: User = {
name: "Kim",
role: UserRole.Admin
};⊙
enum Category {
Frontend = "FRONTEND",
Backend = "BACKEND",
DevOps = "DEVOPS"
}
const categories = Object.values(Category);
console.log(categories);⊙
enum Direction {
Up,
Down
}⊙
console.log(Direction[0]);⊙
const enum Direction {
Up,
Down,
Left,
Right
}⊙
???⊙
const direction = Direction.Up;
댓글
댓글 쓰기