Funkcija generalizovanog tipa u TypeScript-u

U prethodnim lekcijama smo napravili identičku funkciju, koja je prihvatala parametre generalizovanog tipa. Sada ćemo naučiti kako da opišemo tip takve funkcije i kreiramo generalizovane interfejse.

Funkciju generalizovanog tipa takođe možemo zapisati i u obliku streličaste. Hajde da deklarišemo promenljivu func, čiji će biti tip generalizovane funkcije:

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

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

Možemo postaviti i drugi simbol za generalizovani tip te promenljive. Glavno je voditi računa, da se imena tipova ne sukobljavaju:

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

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

Generalizovani tip možemo zapisati, stavivši signaturu poziva i tip funkcije u vitičaste zagrade:

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

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

Napišite funkciju za određivanje dužine niza generalizovanog tipa u opisanim varijantama iz ove lekcije.