Напиши тип 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 ошибок.
Предыдущий вопрос
Шаблонные литеральные типы и комбинаторный взрыв
Следующий вопрос
Только строковые ключи через Extract