Вступить в клуб →
сложнаявопросTypeScript на бэкенде: данные из базы, конфиг и события

Обработчик событий заказа обращается к полю reason у события оплаты

type OrderEvent = {
  type: string;
  orderId: string;
  total?: number;
  reason?: string;
};

function handle(e: OrderEvent) {
  if (e.type === 'order_cancelled') notifyCancel(e.orderId, e.total!);   // перепутали поле
}

Компилятор не заметил, что у отмены берётся total вместо reason. Как описать события, чтобы такое не компилировалось?

  • Размеченное объединение с литеральным полем type
  • Сделать все поля обязательными
  • Заменить string на enum в поле type
  • Убрать восклицательный знак после total

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела