Típusváltozók a TypeScript-ben

A generikusok koncepciójának jobb megértése érdekében hozzuk létre az első függvényünket - identitásfüggvényt. Egy ilyen függvény pontosan azt adja vissza, amit átadtak neki - ugyanazzal a típussal.

Először írjuk meg a függvényünk változatait külön-külön.

Írjunk egy függvényt, amely paraméterként egy számot vesz fel, és visszaad egy számot:

typescriptfunction func(data: number): number {
  return data;
}

Most írjunk egy függvényt, amely paraméterként egy sztringet vesz fel, és visszaad egy sztringet:

typescriptfunction func(data: string): string {
  return data;
}

Tegyük fel, hogy most azt szeretnénk, hogy mindezeket egyetlen függvény végezze. Vagyis általánosítást szeretnénk végrehajtani.

Ehhez típusváltozót használunk, amely eltárolja az adatok típusát. Egy ilyen változó a függvény paramétereit tartalmazó zárójelek előtt, szögletes zárójelek között kerül deklarálásra. Deklaráljunk egy ilyen változót, adva neki a T nevet (bármilyen nevet adhatunk):

typescriptfunction func <T>(itt a paraméterek) {
  return data;
}

Ezután megjelenik a T változónk, amelyet felhasználhatunk arra, hogy bele tegyük a paraméter típusát, majd ezt megadhassuk a visszatérési érték típusaként.

Adjuk meg a paraméterünk típusát a mi változónk segítségével:

typescriptfunction func <T>(data: T) {
  return data;
}

Így az lesz, hogy a paraméter bármilyen típusban átadható, és ez a típus a mi T változónkban tárolódik el.

Most használjuk a T változó értékét a függvény visszatérési értékének megadásához:

typescriptfunction func <T>(data: T): T {
  return data;
}

Most már az lesz, hogy a függvény visszatérési értékének típusa a paraméter típusából fog származni. Ellenőrizzük le.

Hívjuk meg a függvényt egy számmal:

typescriptconsole.log( func(3) );   // kiírja 3-at

Hívjuk meg a függvényt egy sztringgel:

typescriptconsole.log( func('x') ); // kiírja 'x'-et
Задание 1

Készítsen egy függvényt, amely paraméterként vagy két számot, vagy két sztringet fogad el. A függvény eredményeképpen a paraméterek összegét kell visszaadnia.