Вступить в клуб →
сложнаявопросJavaScript и TypeScript

Значение по умолчанию перекрывает валидный ноль в параметрах реестра

Компонент реестра собирает параметры так:

const page = Number(params.get('page')) || 1;
const pageSize = settings.pageSize || 20;

Поле settings.pageSize приходит с бэкенда числом. Для роли «оператор» бэкенд присылает 0, что по контракту означает «показывать все записи без пагинации». Оператор жалуется, что видит ровно 20 записей.

В чём причина и что нужно изменить?

  • Значение приходит строкой, поэтому сравнение выполняется нестрого; поможет явное приведение к числу перед подстановкой значения по умолчанию.
  • Ноль — ложное значение, поэтому оператор || подставляет 20; для подстановки только при null и undefined нужен оператор ??.
  • Оператор || работает лишь с булевыми значениями, для чисел его надо заменить на тернарный оператор.
  • Перепутан порядок операндов: значение по умолчанию должно стоять слева от ||.

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

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

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

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