Tyypilliset muuttujat TypeScriptissä
Ymmärtääksesi geneeristen tyyppien käsitettä paremmin luodaan ensimmäinen funktiomme - identiteettifunktio. Tällainen funktio palauttaa täsmälleen sen, mitä sille annettiin - samalla tyypillä.
Aluksi kirjoitetaan funktiomme versiot erikseen.
Kirjoitetaan funktio, joka ottaa parametrina luvun ja palauttaa luvun:
function func(data: number): number {
return data;
}
Nyt kirjoitetaan funktio, joka ottaa parametrina merkkijonon ja palauttaa merkkijonon:
function func(data: string): string {
return data;
}
Oletetaan nyt, että haluamme tehdä tämän kaiken yhdellä funktiolla. Eli haluamme suorittaa yleistämisen.
Tätä varten käytämme tyypillistä
muuttujaa, joka säilyttää datatyypin.
Tällainen muuttuja esitellään
kulmasulkujen sisällä ennen pyöreitä sulkuja
funktion parametrien kanssa. Esitellään
tällainen muuttuja antamalla sille nimi T
(mikä tahansa nimi kelpaa):
function func <T>(tässä parametrit) {
return data;
}
Tämän jälkeen meillä on muuttuja T,
jota voidaan käyttää tallentamaan parametrin tyyppi,
ja sitten määrittämään se paluuarvon tyypiksi.
Määritetään parametrillemme tyyppi muuttujamme mukaisesti:
function func <T>(data: T) {
return data;
}
Saadaan aikaiseksi, että parametri voidaan antaa
millä tahansa tyypillä, ja tämä tyyppi tallennetaan muuttujaamme T.
Käytetään nyt muuttujan T arvoa
funktion paluuarvon määrittelyssä:
function func <T>(data: T): T {
return data;
}
Nyt saadaan aikaiseksi, että funktion paluuarvon tyyppi saadaan parametrin tyypistä. Testataan.
Kutsutaan funktiota numerolla:
console.log( func(3) ); // tulostaa 3
Kutsutaan funktiota merkkijonolla:
console.log( func('x') ); // tulostaa 'x'
Tee funktio, joka ottaa parametrina joko kaksi numeroa tai kaksi merkkijonoa. Funktion tulee palauttaa parametrien summa.