TypeScript: Enum

Что такое enum?

enum — тип данных, позволяющий задать набор именованных констант.

Виды enum

Числовые (numeric) — двунаправленные:

enum Result {
  Success, // 0
  Error,   // 1
}

Числовые enum двунаправленные: Result.Success === 0 и Result[0] === "Success".

Строковые (string):

enum Result {
  Success = "Success",
  Error = "Error",
}

Гетерогенные (heterogeneous) — смешанные:

enum Result {
  Success = 0,
  Error = "ERROR",
}

Computed — вычисляемые значения:

enum Size {
  Small = computeSize("small"),
  Medium = computeSize("medium"),
  Large = computeSize("large"),
}

В enum со строковыми значениями computed-значения не допускаются.


const enum

const enum оптимизирован по производительности: значения вычисляются на этапе компиляции и полностью вырезаются из сгенерированного JavaScript — вместо обращения к объекту enum подставляется само значение.

const enum Direction {
  Up,
  Down,
  Left,
  Right,
}