⊗tsSpGnTV 30 of 37 menu

Typové premenné v TypeScript

Pre lepšie pochopenie konceptu generík vytvorme našu prvú funkciu - funkciu-identitu. Taká funkcia vráti presne to, čo jej bolo odovzdané - s rovnakým typom.

Na začiatok napíšme varianty našej funkcie samostatne.

Napíšme funkciu, ktorá ako parameter prijíma číslo a vráti číslo:

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

Teraz napíšme funkciu, ktorá ako parameter prijíma reťazec a vráti reťazec:

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

Teraz povedzme, že chceme, aby toto všetko robila jedna funkcia. To znamená, že chceme vykonať zovšeobecnenie.

Na to použijeme typovú premennú, ktorá ukladá typ údajov. Takáto premenná sa deklaruje v lomených zátvorkách pred okrúhlymi zátvorkami s parametrami funkcie. Deklarujme takúto premennú, dajme jej meno T (môže byť ľubovoľné):

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

Potom budeme mať k dispozícii premennú T, ktorú môžeme použiť na to, aby sme do nej uložili typ parametra, a potom ho určili ako návratový typ.

Určme nášmu parametru typ ako našu premennú:

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

Výsledkom bude, že parameter môže byť odovzdaný v ľubovoľnom type, a tento typ sa uloží do našej premennej T.

Teraz použijeme hodnotu premennej T ako určenie výsledku funkcie:

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

Teraz bude výsledkom, že typ výsledku funkcie bude odvodený z typu parametra. Skontrolujme to.

Zavolajme funkciu s číslom:

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

Zavolajme funkciu s reťazcom:

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

Vytvorte funkciu, ktorá ako parameter prijíma buď dve čísla, alebo dva reťazce. Výsledkom funkcie by malo byť vrátenie súčtu parametrov.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť