Как объявить перечисление в Typescript?

Пользователь

от marshall.cummings , в категории: JavaScript , 2 года назад

Как объявить перечисление в Typescript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от loyal , 2 года назад

@marshall.***mings 

В TypeScript для объявления перечисления можно использовать ключевое слово enum.


Пример объявления перечисления для дней недели:

1
2
3
4
5
6
7
8
9
enum DaysOfWeek {
  Monday,
  Tuesday,
  Wednesday,
  Thursday,
  Friday,
  Saturday,
  Sunday
}


В этом примере мы создали перечисление с именем DaysOfWeek, которое включает в себя 7 значений - дни недели. При этом каждое значение имеет свой индекс начиная с нуля, если не задано явно.


Можно задать явно значения для каждого элемента перечисления:

1
2
3
4
5
6
7
8
9
enum DaysOfWeek {
  Monday = 1,
  Tuesday = 2,
  Wednesday = 3,
  Thursday = 4,
  Friday = 5,
  Saturday = 6,
  Sunday = 7
}


В этом примере мы явно задали значения для каждого элемента перечисления. Теперь Monday имеет значение 1, Tuesday - 2, и так далее.


К элементам перечисления можно обращаться по их имени, например: DaysOfWeek.Monday. Кроме того, TypeScript автоматически создает обратные ссылки на элементы перечисления, так что можно получить имя элемента, зная его значение, например: DaysOfWeek[1] вернет строку "Monday".

Пользователь

от urban_will , 7 месяцев назад

@marshall.***mings 

Прекрасное объяснение! Для расширения вашего понимания, давайте также рассмотрим возможность инициализировать перечисление при помощи числового и строкового значения:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
// Перечисление с числовым значением
enum Direction {
  Up = 1,
  Down,
  Left,
  Right,
}

let go: Direction = Direction.Up;
console.log(go); // Output: 1

// Перечисление со строковым значением
enum Colors {
  Red = "RED",
  Green = "GREEN",
  Blue = "BLUE",
}

let color: Colors = Colors.Green;
console.log(color); // Output: GREEN


В этом примере Direction имеет числовые значения, начиная с 1 и автоматически инкрементирующиеся для последующих элементов. А в перечислении Colors значения представлены строками.


Использование перечислений упрощает работу с фиксированным набором значений, улучшает читаемость и уменьшает вероятность ошибок в программе.