Generiska typvariabler i TypeScript
När vi skapar en funktion av generisk typ, tvingar TypeScript oss att använda typvariablerna på rätt sätt i dess kropp. Därför måste vi betrakta beteendet för varje parameter som skickas till funktionen, utifrån alla typer som är tillgängliga för oss.
Låt oss skapa en funktion för att bestämma längden på en variabel av generisk typ:
function myFunc <T> (data: T): T {
console.log(data.length); // fel
return data;
}
Felet uppstår eftersom inte alla typer har en längd. Till exempel, för booleska värden är en sådan åtgärd omöjlig. Men om vi förtydligar typen och anger den som en array, kommer koden att fungera korrekt. Trots allt har varje array, oavsett vilken typ den är, en längd:
function myFunc <T> (data: T[]): T[] {
console.log(data.length); // 3
return data;
}
console.log(myFunc([1, 3, 5])); // [ 1, 3, 5 ]
Skriv en funktion för att iterera genom och skriva ut alla element i en array av generisk typ till konsolen.