Эквивалентная запись: const { stage = 'draft' } = options. Она подставляет значение только для отсутствующего поля или undefined и сохраняет null.
Значение stage по умолчанию в деструктуризации
Эквивалентная запись: const { stage = 'draft' } = options. Она подставляет значение только для отсутствующего поля или undefined и сохраняет null.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Нужно заменить const stage = options.stage === undefined ? 'draft' : options.stage деструктуризацией. options всегда объект; null в stage должен сохраняться.
Ответ
Эквивалентная запись: const { stage = 'draft' } = options. Она подставляет значение только для отсутствующего поля или undefined и сохраняет null.
Не заменяйте её на options.stage || 'draft': это изменит поведение для пустой строки, false и нуля. Оператор ?? также не полностью эквивалентен исходному условию, потому что заменит null. При вложенном объекте отдельный default нужен для каждого уровня, который может отсутствовать.