В TypeScript, как и в JavaScript, нет встроенного ключевого слова для создания перечислений, но можно создать «типизированный enum» с использованием простого объекта и типа объединения.
Начнем с создания объекта, который будет представлять наш перечисление. Для каждого элемента перечисления мы будем задавать свойство объекта с уникальным именем и числовым значением, как это делается в обычном перечислении.
const MyEnum = { Element1: 0, Element2: 1, Element3: 2, };
Далее, чтобы определить типизированный enum для этого объекта, мы можем использовать тип объединения (union type). Для этого создадим новый тип, который будет представлять все возможные значения нашего перечисления.
type MyEnumType = typeof MyEnum[keyof typeof MyEnum];
Теперь мы можем использовать этот тип в качестве аннотации типа для переменных, параметров функций и других мест, где нам нужно работать с элементами перечисления.
function processElement(element: MyEnumType) { // ... код обработки элемента перечисления ... } const myVariable: MyEnumType = MyEnum.Element1;
Таким образом, мы создали «типизированный enum» в TypeScript с использованием объекта и типа объединения. Этот подход позволяет нам иметь типизацию и автодополнение для элементов перечисления, а также полную гибкость в определении значений элементов и их имен.