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'
Задание 1

Tee funktio, joka ottaa parametrina joko kaksi numeroa tai kaksi merkkijonoa. Funktion tulee palauttaa parametrien summa.