Gegeneraliseerde typevariabelen in TypeScript

Wanneer we een functie van een gegeneraliseerd type maken, dwingt TypeScript ons tot het correcte gebruik van typevariabelen in het lichaam ervan. Bijgevolg moet het gedrag van elke parameter die aan de functie wordt doorgegeven, worden beschouwd vanuit het oogpunt van alle voor ons beschikbare typen.

Laten we een functie maken om de lengte van een variabele van een gegeneraliseerd type te bepalen:

typescriptfunction myFunc <T> (data: T): T {
  console.log(data.length); // fout
  return data;
}

De fout treedt op omdat niet alle typen een lengte hebben. Voor booleaanse waarden is een dergelijke actie bijvoorbeeld niet mogelijk. Als we het type echter verfijnen en het opgeven als een array, dan zal de code correct werken. Immers, elke array, ongeacht het type, heeft een lengte:

typescriptfunction myFunc <T> (data: T[]): T[] {
  console.log(data.length); // 3
  return data;
}

console.log(myFunc([1, 3, 5])); // [ 1, 3, 5 ]
Задание 1

Schrijf een functie om alle elementen van een array van een gegeneraliseerd type te doorlopen en naar de console uit te voeren.