Поиск по сайту
Ctrl + K
Вопросы по TS

Как работать с перечислениями (enums) в TypeScript?

Перечисления (enums) в TypeScript - это мощный инструмент, который позволяет создавать удобные и читаемые наборы констант, имеющие логическую взаимосвязь. Они помогают улучшить читаемость кода и позволяют использовать более описательные обозначения вместо "магических" строк или чисел.

Основы использования перечислений

Синтаксис создания перечислений довольно прост. Давайте рассмотрим базовый пример:

enum Direction {
    Up = 1,
    Down,
    Left,
    Right,
}

В этом примере мы создали перечисление Direction, которому задаем значения 1, 2, 3 и 4 для каждого направления. Если не указать значение для других членов перечисления, они автоматически получат значение, на единицу больше предыдущего.

Использование перечислений

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

function move(direction: Direction) {
    switch (direction) {
        case Direction.Up:
            console.log("Мы движемся вверх!");
            break;
        case Direction.Down:
            console.log("Мы движемся вниз!");
            break;
        case Direction.Left:
            console.log("Мы движемся влево!");
            break;
        case Direction.Right:
            console.log("Мы движемся вправо!");
            break;
        default:
            console.log("Неизвестное направление!");
            break;
    }
}

// Вызов функции
move(Direction.Up); // Вывод: Мы движемся вверх!

Строковые перечисления

Кроме числовых перечислений, TypeScript также поддерживает строковые перечисления, которые могут быть более удобными для некоторых ситуаций.

enum FileAccess {
    None = "Ничего",
    Read = "Чтение",
    Write = "Запись",
    ReadWrite = "Чтение и Запись",
}

Использование строковых перечислений аналогично:

function displayAccess(access: FileAccess) {
    console.log(`Доступ: ${access}`);
}

displayAccess(FileAccess.Read); // Вывод: Доступ: Чтение

Объединения и перечисления

С помощью перечислений вы также можете использовать объединенные типы. Давайте представим, что у вас есть несколько состояний, которые могут быть объединены в одно значение:

enum State {
    Pending,
    Approved,
    Rejected,
}

function handleState(state: State) {
    if (state === State.Approved) {
        console.log("Заявка одобрена");
    }
}

Заключение

Перечисления в TypeScript - это полезный инструмент, который позволяет улучшить организованность и читабельность вашего кода. Используйте их, чтобы обозначать наборы связанных значений, и вы обнаружите, что ваш код становится более понятным и поддерживаемым. Не забывайте о возможности использования как числовых, так и строковых перечислений, в зависимости от ваших потребностей.