enum은 JavaScript에는 없고 TypeScript에만 있으며 이름 지어진 상수 집합을 정의할 수 있습니다.
코드 안에 반복적으로 참조하는 값의 집합이 있을 경우에 재사용 하기 위해 사용합니다.
const enum ArrowKeys {
UP = "up",
DOWN = "down",
LEFT = "left",
RIGHT = "right",
}
enum을 생성하고 값을 지정하지 않으면 TypeScript가 0으로 시작하는 숫자 값을 할당합니다.
const enum OrderStatus {
PENDING, // 0
SHIPPED, // 1
DELIVERED, // 2
RETURNED, // 3
}
// myStatus = 2
const myStatus = OrderStatus.DELIVERED;
function isDelivered(status: OrderStatus) {
// OrderStatus.DELIVERED = 2
return status === OrderStatus.DELIVERED;
}
// OrderStatus.RETURNED = 3
isDelivered(OrderStatus.RETURNED);
만약 PENDING이 10의 값을 가지면 뒤의 값들은 10에서 1씩 증가된 값을 가집니다.
const enum OrderStatus {
PENDING = 10,
SHIPPED, // 11
DELIVERED, // 12
RETURNED, // 13
}