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