Algemene typefunctie in TypeScript

In eerdere lessen hebben we een identiteitsfunctie gemaakt, die parameters van een algemeen type accepteerde. Nu leren we hoe we het type van zo'n functie moeten beschrijven en algemene interfaces moeten aanmaken.

Een algemene typefunctie kan ook geschreven worden als een pijlfunctie. Laten we een variabele func declareren, waarvan het type een algemene functie is:

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

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

Je kunt ook een ander symbool gebruiken voor het algemene type van zo'n variabele. Het belangrijkste is om ervoor te zorgen dat de typenamen niet conflicteren:

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

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

Het algemene type kan worden geschreven door de aanroephandtekening en het functietype tussen accolades te plaatsen:

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

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

Schrijf een functie om de lengte van een array van een algemeen type te bepalen in de varianten, die in deze les zijn beschreven.