TypeScripti üldistatud tüübi funktsioon

Eelmistes tundides tegime identiteedifunktsiooni, mis võttis vastu üldistatud tüübi parameetrid. Nüüd õpime kirjeldama sellise funktsiooni tüüpi ja looma üldistatud liideseid.

Üldistatud tüübi funktsiooni saab kirjutada ka noolefunktsioonina. Deklareerime muutuja func, millel on üldistatud funktsiooni tüüp:

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

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

Saab määrata ka teise sümboli sellise muutuja üldistatud tüübile. Peamine on jälgida, et tüüpide nimed ei konfliktiks:

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

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

Üldistatud tüübi saab kirjutada, pannes käivitamise signatuuri ja funktsiooni tüübi lokkis sulgudesse:

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

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

Kirjutage funktsioon üldistatud tüübi massiivi pikkuse määramiseks selles tunnis kirjeldatud variantides.