Проверьте selectedId === undefined и завершите обработчик с сообщением о необходимости выбора. Проверка !selectedId неверна: она отклонит допустимое значение 0.
Как обработать undefined selectedId без ложного выбора?
Проверьте 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 в локальную константу, чтобы завершение относилось к исходному действию.