Menu
Coddy logo textTech

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

Часть раздела Введение в TypeScript путешествия по JavaScript на Coddy. Урок 54 из 73.

Строковые перечисления работают особенно хорошо в качестве параметров функций, так как они обеспечивают понятные и читаемые значения, сохраняя при этом типобезопасность.

Вот как можно использовать строковый enum в функции:

function move(direction: Direction): void {
  console.log(`Moving ${direction.toLowerCase()}...`);
}

Когда вы вызываете эту функцию, TypeScript будет принимать только предопределенные значения enum. Вы можете вызвать её, используя move(Direction.Up), что выведет "Moving up...". Ваш редактор кода предложит автодополнение для доступных членов enum, а TypeScript будет отслеживать любые попытки передать недопустимые значения направления.

challenge icon

Задание

Легко

Вам предоставлены следующие элементы из предыдущего испытания:

  • Строковое перечисление (enum) Direction с элементами Up, Down, Left и Right
  • Переменные: upDirection, downDirection, leftDirection и rightDirection

Создайте функцию с именем move, которая принимает один параметр:

  • direction типа Direction

Функция должна:

  • Выводить сообщение в формате "Moving [direction]...", где [direction] — это строковое значение перечисления в нижнем регистре
  • Иметь тип возвращаемого значения void

Создайте функцию с именем getMovementDescription, которая принимает один параметр:

  • direction типа Direction

Функция должна:

  • Возвращать строку, описывающую движение в зависимости от направления:
  • Для Direction.Up: вернуть "Going upward"
  • Для Direction.Down: вернуть "Going downward"
  • Для Direction.Left: вернуть "Turning left"
  • Для Direction.Right: вернуть "Turning right"
  • Иметь явный тип возвращаемого значения string

Создайте переменную с именем playerDirection типа Direction и присвойте ей значение Direction.Up.

Выведите следующие результаты:

  • Вызовите move с аргументом Direction.Up
  • Вызовите move с аргументом leftDirection
  • Вызовите move с аргументом playerDirection
  • Выведите результат вызова getMovementDescription с аргументом Direction.Down
  • Выведите результат вызова getMovementDescription с аргументом rightDirection
  • Вызовите move с аргументом Direction.Right

Попробуйте сами

// Из предыдущего задания — перечисление Direction и переменные
enum Direction {
    Up = "Up",
    Down = "Down",
    Left = "Left",
    Right = "Right"
}

const upDirection = Direction.Up;
const downDirection = Direction.Down;
const leftDirection = Direction.Left;
const rightDirection = Direction.Right;

// TODO: Напишите свой код здесь
// Создайте функцию move, которая принимает параметр Direction и выводит "Moving [direction]..."
// Создайте функцию getMovementDescription, которая возвращает описания движений
// Создайте переменную playerDirection
// Вызовите функции и выведите требуемые результаты
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Введение в TypeScript

Потренируйтесь самостоятельно: Онлайн-компилятор JavaScript