Выбор ответа Middle Дженерики обновлено

Лишний параметр типа

Вопрос

В какой сигнатуре параметр типа не нужен?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: function print<T(x: T): void. Параметр типа полезен, когда связывает несколько мест: вход с выходом или аргументы между собой.

Варианты ответа

  1. function first<T>(a: T[]): T | undefined
  2. function print<T>(x: T): voidправильный ответ
  3. function pick<T, K extends keyof T>(o: T, k: K): T[K]
  4. 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 ошибок.

Термины по теме