⊗tsSpGnTV 30 of 37 menu

Typové proměnné v TypeScriptu

Pro lepší pochopení konceptu generik vytvořme naši první funkci - funkci-identitu. Taková funkce vrací přesně to, co jí bylo předáno - se stejným typem.

Nejprve napišme varianty naší funkce samostatně.

Napišme funkci, která parametrem přijímá číslo a vrací číslo:

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

Nyní napišme funkci, která parametrem přijímá řetězec a vrací řetězec:

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

Nyní chceme, aby toto vše dělala jedna funkce. To znamená, že chceme provést zobecnění.

K tomu použijeme typovou proměnnou, která si uchovává typ dat. Taková proměnná se deklaruje v lomených závorkách před kulatými závorkami s parametry funkce. Pojďme deklarovat takovou proměnnou a dát jí jméno T (libovolné jméno je možné):

function func <T>(zde parametry) { return data; }

Poté budeme mít k dispozici proměnnou T, kterou lze použít k uložení typu parametru a následně jeho určení jako návratového typu.

Určeme našemu parametru typ ve formě naší proměnné:

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

Výsledkem bude, že parametr může být předán v libovolném typu a tento typ se uloží do naší proměnné T.

Nyní použijeme hodnotu proměnné T k určení výsledku funkce:

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

Nyní bude výsledkem, že typ výsledku funkce bude odvozen z typu parametru. Pojďme to ověřit.

Zavolejme funkci s číslem:

console.log( func(3) ); // vypíše 3

Zavolejme funkci s řetězcem:

console.log( func('x') ); // vypíše 'x'

Vytvořte funkci, která parametrem přijímá buď dvě čísla, nebo dva řetězce. Výsledkem funkce by měl být součet parametrů.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout