Typiske variabler i TypeScript
For en bedre forståelse av konseptet generics la oss opprette vår første funksjon - identitetsfunksjonen. En slik funksjon returnerer nøyaktig det som ble sendt inn - med samme type.
La oss først skrive variantene av vår funksjon hver for seg.
La oss skrive en funksjon som tar inn et tall som parameter og returnerer et tall:
function func(data: number): number {
return data;
}
La oss nå skrive en funksjon som tar inn en streng som parameter og returnerer en streng:
function func(data: string): string {
return data;
}
La oss nå si at vi ønsker at alt dette skal gjøres av én funksjon. Det vil si at vi ønsker å utføre generalisering.
For dette bruker vi en typisk
variabel, som lagrer datatypen. En slik variabel deklareres
i vinkelparenteser før parentesene
med funksjonsparameterne. La oss deklarere
en slik variabel, og gi den navnet T
(kan være hvilket som helst):
function func <T>(her parametere) {
return data;
}
Etter dette vil vi ha variabelen T,
som kan brukes til å
plassere parameterens type i den, og deretter
angi den som returtype.
La oss angi typen til parameteren vår som vår variabel:
function func <T>(data: T) {
return data;
}
Det vil si at parameteren kan sendes
i hvilken som helst type, og denne typen vil bli lagret i vår
variabel T.
La oss nå bruke verdien av variabelen T
for å angi funksjonens resultat:
function func <T>(data: T): T {
return data;
}
Nå vil det si at funksjonens returtype vil hentes fra parameterens type. La oss sjekke.
La oss kalle funksjonen med et tall:
console.log( func(3) ); // skriver ut 3
La oss kalle funksjonen med en streng:
console.log( func('x') ); // skriver ut 'x'
Lag en funksjon som parameter tar inn enten to tall, eller to strenger. Funksjonen skal returnere summen av parameterne.