Typiske variable i TypeScript
For en bedre forståelse af konceptet generics lad os oprette vores første funktion - identitetsfunktionen. En sådan funktion returnerer præcis det, der blev sendt til den - med samme type.
Lad os til at starte med skrive varianter af vores funktion hver for sig.
Lad os skrive en funktion, der som parameter tager imod et tal og returnerer et tal:
function func(data: number): number {
return data;
}
Lad os nu skrive en funktion, der som parameter tager imod en streng og returnerer en streng:
function func(data: string): string {
return data;
}
Lad os nu sige, at vi vil gøre sådan, at alt dette gøres af én funktion. Det vil sige, vi ønsker at udføre generalisering.
For at gøre dette bruger vi en typisk
variable, som gemmer datatypen. Sådan en variabel erklæres
i vinkelparenteser før de runde parenteser
med funktionens parametre. Lad os erklære
sådan en variabel og give den navnet T
(ethvert navn er tilladt):
function func <T>(her parametre) {
return data;
}
Herefter vil vi have variablen T til rådighed,
som kan bruges til at gemme typen af parameteren, og derefter
angive den som den returnerede
værdi.
Lad os angive typen af vores parameter som vores variabel:
function func <T>(data: T) {
return data;
}
Resultatet bliver, at parameteren kan sendes
i enhver type, og denne type vil blive gemt i vores
variabel T.
Lad os nu bruge værdien af variablen T
til at angive funktionens resultat:
function func <T>(data: T): T {
return data;
}
Nu vil det resultere i, at typen af funktionens resultat vil blive afledt af typen af parameteren. Lad os tjekke.
Lad os kalde funktionen med et tal:
console.log( func(3) ); // udskriver 3
Lad os kalde funktionen med en streng:
console.log( func('x') ); // udskriver 'x'
Lav en funktion, der som parameter tager imod enten to tal eller to strenge. Funktionen skal returnere summen af parametrene som sit resultat.