Выбор ответа Middle Дженерики обновлено
Лишний параметр типа
Вопрос
В какой сигнатуре параметр типа не нужен?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: function print<T(x: T): void. Параметр типа полезен, когда связывает несколько мест: вход с выходом или аргументы между собой.
Варианты ответа
function first<T>(a: T[]): T | undefinedfunction print<T>(x: T): voidправильный ответfunction pick<T, K extends keyof T>(o: T, k: K): T[K]function map<T, U>(a: T[], f: (x: T) => U): U[]
Разбор
Параметр типа полезен, когда связывает несколько мест: вход с выходом или аргументы между собой. В print T встречается один раз и ничего не связывает, поэтому сигнатура эквивалентна print(x: unknown): void, только сложнее.
В first T связывает элемент массива с результатом. В pick ключ связан с объектом и результатом. В map T связывает массив с колбэком, а U колбэк с результатом.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.