Почему проверка `typeof value === "object"` небезопасна для `null` и как сделать проверку принадлежности значения типу дерева более безопасной и понятной?

typeof null возвращает 'object', поэтому сначала исключите null, затем массивы и проверьте обязательные поля конкретного узла.

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

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

typeof null возвращает 'object', поэтому сначала исключите null, затем массивы и проверьте обязательные поля конкретного узла.

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

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

typeof null возвращает 'object', поэтому сначала исключите null, затем массивы и проверьте обязательные поля конкретного узла.

Базовая проверка: value !== null && typeof value === 'object' && !Array.isArray(value). Она ещё не доказывает принадлежность дереву: нужны проверки типов id, children и других полей по вашей схеме. Для внешних данных рекурсивную валидацию ограничивают по глубине и защищают от циклов.

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

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

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

Подробнее