Согласно документации TypeScript :
Перечисления позволяют нам определять набор именованных констант
, т. Е. Enum не является ограниченным набором options, это просто список констант.
Код из вашего вопроса:
const enum Mode{
Add=1,
Edit=22
}
let currentMode:Mode=222222;
let add: Mode = Mode.Add
будет скомпилирован в следующие JavaScript:
"use strict";
let currentMode = 222222;
let add = 1 /* Add */;
As Вы можете видеть, что не будет никакого объекта, созданного для вашего const enum
в JS. Вместо этого компилятор TypeScript поместит используемые значения enum в места использования.
Что касается типа enum в C#. Вы можете сделать то же самое. Код, указанный ниже, действителен C# код:
public enum Mode
{
Add = 1,
Edit = 2
}
...
Mode mode = (Mode)123;