Функцию обобщенного типа в TypeScript

В предыдущих уроках мы сделали функцию-тождество, которая принимала параметры обобщенного типа. Теперь мы научимся описывать тип такой функции и создавать обобщенные интерфейсы.

Функцию обобщенного типа можно также записать и в виде стрелочной. Давайте объявим переменную func, у которой будет тип обобщенной функции:

typescriptfunction myFunc <T> (data: T): T {
  return data;
}

let func: <T> (data: T) => T = myFunc;

Можно задать и другой символ для обобщенного типа такой переменной. Главное следить, чтобы имена типов не конфликтовали:

typescriptfunction myFunc <T> (data: T): T {
  return data;
}

let func: <U> (data: U) => U = myFunc;

Обобщенный тип можно записать, заключив сигнатуру вызова и тип функции в фигурные скобки:

typescriptfunction myFunc < T > (data: T): T {
  return data;
}

let func: {<U> (data: U): U} = myFunc;
Задание 1

Напишите функцию для определения длины массива обобщенного типа в вариантах, описанных в данном уроке.