Выбор ответа Junior Дженерики обновлено
Параметр типа по умолчанию
Вопрос
Что скажет компилятор?
type Resp<T = string> = { data: T; status: number };
const r: Resp = { data: 1, status: 200 };
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Ошибка: number нельзя присвоить в string. В аннотации типа параметры не выводятся из значения.
Варианты ответа
- Ошибка:
numberнельзя присвоить вstringправильный ответ - Ошибка: у
Respобязателен параметр типа - Всё компилируется,
dataимеет типany - Всё компилируется,
Tвыведется какnumber
Разбор
В аннотации типа параметры не выводятся из значения. Если параметр не указан, берётся значение по умолчанию: Resp это Resp<string>, и поле data ожидает строку. Число даёт ошибку.
Вывод из значения работает только для вызовов функций. Параметр не обязателен, потому что у него есть значение по умолчанию. any тут ниоткуда не появляется.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.