[Typescript] 8장 열겨형

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