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:
function 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:
function myFunc <T> (data: T[]): T[] {
console.log(data.length); // 3
return data;
}
console.log(myFunc([1, 3, 5])); // [ 1, 3, 5 ]
Schrijf een functie om alle elementen van een array van een gegeneraliseerd type te doorlopen en naar de console uit te voeren.