Выбор ответа Senior Условные и mapped-типы обновлено
Проверка на never
Вопрос
Какой тип у R?
type IsNever<T> = T extends never ? true : false;
type R = IsNever<never>;
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: never. never это пустое объединение.
Варианты ответа
neverправильный ответbooleantruefalse
Разбор
never это пустое объединение. Дистрибутивный условный тип применяется к каждому члену объединения, а членов ноль, поэтому результат тоже пустое объединение: never. Ветки true и false даже не вычисляются.
Правильная проверка отключает распределение: type IsNever<T> = [T] extends [never] ? true : false, она даёт true.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.