Напиши тип Senior Условные и mapped-типы обновлено

Распределительный условный тип от never

Вопрос

Какой тип получится? Впишите тип.

type IsStr<T> = T extends string ? 'y' : 'n';
type R = IsStr<never>; // /* ? */

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

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

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

Коротко

Правильный тип: never. never это пустое объединение.

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

never

Разбор

never это пустое объединение. Распределительный условный тип применяется к каждому члену объединения, а членов нет, поэтому результат never, а не 'n'. Это ловушка в проверках вида IsNever<T> = T extends never ? true : false: правильно писать [T] extends [never].

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

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