enum в TypeScript

Jun 12, 2018

enumeration (перечисление)

Тип enum используется для объявления перечисления — отдельного типа, который состоит из набора именованных констант, называемого списком перечислителей.

По умолчанию первый перечислитель имеет значение 0, но вы можете переопределить их, например, в нашем случае для перечислителя Brown принудительно задано значение 1.

Вы можете извлечь какой-то перечислитель по индексу, так и получить индекс по перечислителю (Brown).

enum EyeColor { Brown = 1, Black = 5, Blue = 10 };

console.log('EyeColor.Brown: ', EyeColor.Brown);   // 1
console.log('EyeColor[1]: ', EyeColor[1]);  // Brown

Преобразуется в:

"use strict";
var EyeColor;
(function (EyeColor) {
    EyeColor[EyeColor["Brown"] = 1] = "Brown"; 
   // обратите внимание: выражение EyeColor["Brown"] = 1, помимо присваивания, возвращает 1
    EyeColor[EyeColor["Black"] = 5] = "Black";
    EyeColor[EyeColor["Blue"] = 10] = "Blue";
})(EyeColor || (EyeColor = {}));

console.log('EyeColor.Brown: ', EyeColor.Brown); 	// 1
console.log('EyeColor[1]: ', EyeColor[1]); 			// Brown

Enum со строками

enum FileAccess {
  Read = 'R',
  Write = 'W',
  ReadWrite = 'RW'
}

const value1 = FileAccess.Read;
const value2 = FileAccess.Write;
const value3 = FileAccess.ReadWrite;

console.dir({ value1, value2, value3 }); // { value1: "R", value2: "W", value3: "RW" }

Преобразуется в:

"use strict";
var FileAccess;
(function (FileAccess) {
    FileAccess["Read"] = "R";
    FileAccess["Write"] = "W";
    FileAccess["ReadWrite"] = "RW";
})(FileAccess || (FileAccess = {}));
const value1 = FileAccess.Read;
const value2 = FileAccess.Write;
const value3 = FileAccess.ReadWrite;
console.dir({ value1, value2, value3 });
Добавить комментарий