Напиши тип Middle Объединения и сужение обновлено
Исчерпывающая проверка в функции
Вопрос
Какой тип должен быть у параметра функции-заглушки, чтобы компилятор ловил необработанные варианты union?
function assertNever(x: /* ? */): never {
throw new Error('необработанный вариант: ' + x);
}
Попробуйте сами
Напишите тип, как написали бы в коде.
Показать ответ и разбор
Коротко
Правильный тип: never. Ответ Почему так Вызов assertNever(value) в ветке default компилируется, только если все варианты разобраны выше.
Правильный тип
never
Разбор
Ответ
never
Почему так
Вызов assertNever(value) в ветке default компилируется, только если все варианты разобраны выше. Функция вместо переменной удобнее: и проверка, и осмысленная ошибка в рантайме.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.