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:
typescriptfunction func(data: number): number {
return data;
}
Nyt kirjoitetaan funktio, joka ottaa parametrina merkkijonon ja palauttaa merkkijonon:
typescriptfunction 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):
typescriptfunction 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:
typescriptfunction 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ä:
typescriptfunction func <T>(data: T): T {
return data;
}
Nyt saadaan aikaiseksi, että funktion paluuarvon tyyppi saadaan parametrin tyypistä. Testataan.
Kutsutaan funktiota numerolla:
typescriptconsole.log( func(3) ); // tulostaa 3
Kutsutaan funktiota merkkijonolla:
typescriptconsole.log( func('x') ); // tulostaa 'x'
Tee funktio, joka ottaa parametrina joko kaksi numeroa tai kaksi merkkijonoa. Funktion tulee palauttaa parametrien summa.