Как обработать undefined selectedId без ложного выбора?

Проверьте selectedId === undefined и завершите обработчик с сообщением о необходимости выбора. Проверка !selectedId неверна: она отклонит допустимое значение 0.

Короткий ответ

Что ответить на собеседовании

Проверьте selectedId === undefined и завершите обработчик с сообщением о необходимости выбора. Проверка !selectedId неверна: она отклонит допустимое значение 0.

Подробный разбор

Ответ с пояснениями

Условие

В TypeScript selectedId имеет тип number | undefined, причём 0 — допустимый id. Обработчик вызывает save(selectedId), где save ожидает number. Как минимально исправить обработчик, не выбирая первый элемент автоматически?

Ответ

Проверьте selectedId === undefined и завершите обработчик с сообщением о необходимости выбора. Проверка !selectedId неверна: она отклонит допустимое значение 0.

if (selectedId === undefined) {
  showError('Выберите элемент');
  return;
}
save(selectedId);

После ветки TypeScript сужает значение до number. Не используйте selectedId! или подстановку 0 только ради компиляции: они скрывают отсутствие выбора. Если операция асинхронная, при необходимости сохраните выбранный id в локальную константу, чтобы завершение относилось к исходному действию.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее