Функция за обобщен тип в 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

Напишете функция за определяне на дължината на масив от обобщен тип в вариантите, описани в този урок.