Выбор ответа Junior Дженерики обновлено
Дженерик без аргументов вывода
Вопрос
Какой тип у s?
const s = new Set();
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Set<unknown. Вывести параметр типа не из чего: аргументов нет.
Варианты ответа
Set<any>Set<never>Set<unknown>правильный ответ- Ошибка: нужно указать параметр типа
Разбор
Вывести параметр типа не из чего: аргументов нет. В этом случае TypeScript подставляет ограничение параметра, а без ограничения это unknown. Получается Set<unknown>: добавить можно что угодно, но достать значение без сужения нельзя. Поэтому пишут new Set<string>().
any подставился бы, только если бы так было объявлено значение по умолчанию у параметра. never здесь неоткуда взяться. Ошибки нет: параметр типа можно не указывать.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.