Выбор ответа Senior Задачи на типы обновлено
Как распознать any на уровне типов
Вопрос
Какой тип надёжно возвращает true только для any?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: type IsAny<T = 0 extends 1 & T ? true : false. 1 & T для обычного T это 1 или never, и 0 туда не присваивается.
Варианты ответа
type IsAny<T> = T extends any ? true : falsetype IsAny<T> = unknown extends T ? true : falsetype IsAny<T> = [T] extends [never] ? true : falsetype IsAny<T> = 0 extends 1 & T ? true : falseправильный ответ
Разбор
1 & T для обычного T это 1 или never, и 0 туда не присваивается. Только при T = any пересечение становится any, и проверка истинна. Первый вариант истинен для всего, второй и для unknown, третий проверяет never.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.