Напиши тип Middle Объединения и сужение обновлено

Исчерпывающая проверка

Вопрос

Какому типу нужно присвоить значение в ветке default, чтобы компилятор ловил незакрытые варианты union?

default: {
  const _exhaustive: /* ? */ = shape;
  throw new Error('неизвестный вариант');
}

Попробуйте сами

Напишите тип, как написали бы в коде.

Показать ответ и разбор

Коротко

Правильный тип: never. Ответ Почему так Если все варианты обработаны, в default остаётся never и присваивание проходит.

Правильный тип

never

Разбор

Ответ

never

Почему так

Если все варианты обработаны, в default остаётся never и присваивание проходит. Добавили вариант и забыли ветку - компилятор падает. Дешёвая и очень действенная защита.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.