[typescript] 열거형(Enum)의 값 변경 가능 여부 설정
TypeScript에서 Enum(열거형)의 값 변경 가능 여부를 설정하는 방법에 대해 알아보겠습니다.
1. 기본 Enum 정의
가장 기본적인 Enum 정의 방법은 다음과 같습니다:
enum Fruit {
Apple,
Banana,
Orange
}
이 Enum을 사용하여 변수를 선언하면 다음과 같이 사용할 수 있습니다:
let myFruit: Fruit = Fruit.Apple;
2. readonly 키워드 사용
Enum의 값을 변경할 수 없도록 설정하려면 readonly
키워드를 사용할 수 있습니다:
enum Fruit {
Apple,
Banana,
Orange
}
const readOnlyFruit: Readonly<Fruit> = {
Apple: 1,
Banana: 2,
Orange: 3
};
이제 readOnlyFruit
객체는 Enum의 값에 대한 읽기 전용 버전으로 정의되어 있어, 값을 변경할 수 없습니다.
3. Object.freeze 사용
또 다른 방법으로 Object.freeze
를 사용하여 Enum 객체를 읽기 전용으로 만들 수 있습니다:
enum Fruit {
Apple,
Banana,
Orange
}
const frozenFruit = Object.freeze(Fruit);
Object.freeze
를 사용하면 frozenFruit
객체에 대한 속성의 추가, 삭제, 값 변경이 모두 금지됩니다.
4. ReadonlyArray 사용
또한 ReadOnlyArray를 사용하여 Enum의 배열을 읽기 전용으로 만들 수 있습니다:
enum Fruit {
Apple,
Banana,
Orange
}
const readOnlyFruits: ReadonlyArray<Fruit> = [Fruit.Apple, Fruit.Banana, Fruit.Orange];
readOnlyFruits
배열은 특정 인덱스에 값을 할당할 수 없도록 보장됩니다.
이제 TypeScript에서 Enum의 값을 변경 가능 여부를 설정하는 방법에 대해 알게 되었습니다. 보다 읽기 전용으로 Enum을 활용하여 안정적인 코드를 작성할 수 있습니다.
참고 문헌:
- https://www.typescriptlang.org/docs/handbook/enums.html
제가 도움이 되었기를 바라며, 추가로 궁금한 점이 있으시다면 언제든지 물어보세요.