1. 숫자 열거형 (Numeric Enums)
숫자 열거형은 기본적으로 0부터 시작하며 자동으로 증가하는 숫자 값을 할당합니다.
enum Direction {
Up,
Down,
Left,
Right,
}
console.log(Direction.Up); // 0
console.log(Direction.Down); // 1
2. 문자형 열거형 (String Enums)
문자열 열거형은 각 맴버에 문자열 값을 명시적 할당합니다.
enum Direction {
Up = 'UP',
Down = 'DOWN',
Left = 'LEFT',
Right = 'Right',
}
console.log(Direction.Down); // "DOWN"
3. 이종 열거형 (Heterogeneous Enums)
숫자형과 문자열형 맴버를 혼합해 사용할 수 있습니다.
enum Mix {
No = 0,
Yes = 'YES',
}
console.log(Mix.No); // 0
console.log(Mix.Yes); // "YES"
4.계산된 맴버와 상수 맴버 (Computed and Constant Members)
열거형 맴버는 상수값 또는 계산된 값을 가질 수 있습니다.
enum FileAccess {
None, // 0
Read = 1 << 1, // 2
Write = 1 << 2, // 4
ReadWrite = Read | Write, // 6
}
console.log(FileAccess.Write); // 4
5. 유니언 열거형과 열거형 맴버 타입
열거형을 유니언 타입으로 사용할 수 있습니다.
enum ShapeKind {
Circle,
Square,
}
interface Circle {
kind: ShapeKind.Circle;
radius: number;
}
interface Square {
kind: ShapeKind.Square;
sideLength: number;
}
let c: Circle = {
kind: ShapeKind.Circle,
radius: 100,
};
6. 런타임에서 열거형
열거형은 런타임에 객체로 존재해, 이를 활요해 특정 값을 가져올 수 있습니다.
enum Colors {
Red,
Green,
Blue,
}
console.log(Colors[2]); // "Blue"
7. 컴파일 시점에서 열거형
타입스크립트는 열거형을 컴파일 시점에 타입 체크를 수행합니다.
enum Status {
Active,
Inactive,
}
let status: Status = Status.Active // Success
// let invalidStatus: Status = 3 // Error
8.역 매핑
숫자형 열거형은 값에서 이름으로 매핑할 수 있습니다.
enum Direction {
Up,
Down,
}
console.log(Direction[1]); // "Down"
9.const 열거형
const 키워드를 사용해 열거형을 정의하면, 컴파일 시점에 값이 고정되어 최적화됩니다.
const enum Colors {
Red,
Green,
Yellow
}
let color: Colors = Colors.Green; // 컴파일 시점 1로 대체
10.Ambient 열거형
외부 코드에 의해 제공되는 열거형을 정의할 때 사용됩니다. 주로 .d, .ts 파일에 사용됩니다.
declare enum Color {
Red,
Blue,
Green,
}
GitHub - Koras02/typescript-bloging
Contribute to Koras02/typescript-bloging development by creating an account on GitHub.
github.com
LIST
'Front-End > TypeScript' 카테고리의 다른 글
[Tyepscript] 10장 고급 타입 Chapter 1 (0) | 2025.03.06 |
---|---|
[Typescript] 9장 제네릭 (0) | 2025.02.24 |
[TypeScript] 7장 클래스 (0) | 2025.02.20 |
[Typescript] 6장 유니언 타입과 교차 타입 (0) | 2025.02.18 |
[TypeScript] 5강 리터럴 타입 (0) | 2025.02.15 |