Funkcja typu ogólnego w TypeScript

W poprzednich lekcjach stworzyliśmy funkcję tożsamości, która przyjmowała parametry typu ogólnego. Teraz nauczymy się opisywać typ takiej funkcji i tworzyć uogólnione interfejsy.

Funkcję typu ogólnego można również zapisać w formie funkcyjnej. Zadeklarujmy zmienną func, która będzie miała typ funkcji uogólnionej:

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

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

Można użyć innego symbolu dla typu ogólnego takiej zmiennej. Najważniejsze jest śledzenie, aby nazwy typów nie kolidowały:

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

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

Typ ogólny można zapisać, umieszczając sygnaturę wywołania i typ funkcji w nawiasach klamrowych:

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

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

Napisz funkcję do określania długości tablicy typu ogólnego w wariantach, opisanych w tej lekcji.