Перечисления — это мощная функция TypeScript, позволяющая разработчикам определять набор именованных констант. Они позволяют представить группу связанных значений и сделать код более читабельным и удобным в сопровождении. В этой статье мы рассмотрим различные методы использования перечислений в TypeScript, а также приведем примеры кода.
- Основное объявление перечисления.
Самый простой способ определить перечисление в TypeScript — использовать ключевое словоenum. Вот пример:
enum Color {
Red,
Green,
Blue,
}
let color: Color = Color.Red;
console.log(color); // Output: 0
- Пользовательские значения перечисления.
Вы можете назначать собственные значения членам перечисления. По умолчанию значения начинаются с 0, но вы можете их переопределить. Вот пример:
enum Color {
Red = 1,
Green = 2,
Blue = 4,
}
let color: Color = Color.Green;
console.log(color); // Output: 2
- Перечисления на основе строк:
Перечисления также могут использовать строковые значения вместо чисел. Это полезно, когда вам нужно больше описательных значений. Вот пример:
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT",
}
let direction: Direction = Direction.Up;
console.log(direction); // Output: "UP"
- Обратное сопоставление.
Перечисления в TypeScript поддерживают обратное сопоставление, что означает, что мы можем получить имя члена перечисления из его значения. Вот пример:
enum Color {
Red = 1,
Green = 2,
Blue = 3,
}
let colorName: string = Color[2];
console.log(colorName); // Output: "Green"
- Итерация перечисления.
Вы можете перебирать значения перечисления, используя циклfor...in. Вот пример:
enum Color {
Red,
Green,
Blue,
}
for (let color in Color) {
console.log(color); // Output: "Red", "Green", "Blue"
}
- Использование перечислений в качестве типов объединения.
Перечисления можно использовать как часть типов объединения для обеспечения соблюдения определенных значений. Вот пример:
enum Shape {
Circle,
Square,
}
interface Circle {
type: Shape.Circle;
radius: number;
}
interface Square {
type: Shape.Square;
sideLength: number;
}
function area(shape: Circle | Square): number {
if (shape.type === Shape.Circle) {
return Math.PI * shape.radius 2;
} else {
return shape.sideLength 2;
}
}
Перечисления в TypeScript предоставляют удобный способ представления фиксированного набора значений. Мы исследовали различные методы использования перечислений, включая базовое объявление, пользовательские значения, перечисления на основе строк, обратное сопоставление, итерацию перечисления и использование перечислений как части типов объединения. Понимание этих методов поможет вам писать более выразительный и удобный в сопровождении код в ваших проектах TypeScript.