⊗tsSpGnIms 35 of 37 menu

Obmedzenia generík v TypeScript

V jednej z predchádzajúcich lekcií sme vytvorili funkciu generického typu, ktorá mala vypísať dĺžku parametra, ktorý bol do nej odovzdaný. Avšak po kompilácii sme dostali chybu, pretože nie všetky typy môžu mať dĺžku:

function myFunc < T > (data: T): T { console.log(data.length); // chyba return data; }

V tom prípade sme situáciu vyriešili zmenou generického typu na typ generického poľa. Ale v TypeScript existuje možnosť vytvoriť obmedzenia generík. Na to v lomených zátvorkách, za premennou T napíšeme kľúčové slovo extends. Po ňom v zložených zátvorkách zapíšeme novú premennú str reťazcového typu. Zvyšok kódu funkcie zostane bez zmien:

function myFunc <T extends {str: string}> (data: T): void { console.log(data.str.length); }

Vychádza, že generický typ dedí typ premennej str, uvedenej v zložených zátvorkách. Teraz skontrolujme fungovanie našej funkcie a vytvorme premennú myStr, odkazujúcu sa na typ str, a nastavme jej hodnotu v zložených zátvorkách:

let myStr: {str: string} = {str: 'abcde'};

Zavolajme funkciu myFunc, nezabudnime znovu uviesť jej typ a odovzdajme premennú myStr ako parameter:

myFunc <{str: string}> (myStr);

Na základe príkladu, zváženého v lekcii, nastavte funkciu pre zistenie dĺžky číselného poľa.

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ť