⊗tsSpGnPTL 36 of 37 menu

Používanie typových parametrov v obmedzeniach generík v TypeScript

TypeScript tiež umožňuje deklarovanie jedného typového parametra, ktorý bude obmedzený iným typovým parametrom. Toto je potrebné, keď je potrebné kopírovať vlastnosti z jedného objektu do iného, pričom sa chrániť pred tým, že neodovzdáme nadbytočnú vlastnosť.

Pozrime sa na nasledujúci príklad. Znova sa vráťme k funkcii myFunc, ktorá definuje dĺžku premennej:

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

Avšak teraz chceme, aby táto funkcia pracovala len s týmito typmi, ktoré majú vlastnosť length. Na to urobme rozhranie ILength, ktorému nastavme vlastnosť length číselného typu:

interface ILength { length: number; }

Ďalej v našej funkcii nastavme generický typ, ktorý dedí od ILength prostredníctvom kľúčového slova extends:

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

Takto vyzerá náš úplný kód:

interface ILength { length: number; } function myFunc <T extends ILength> (data: T): T { console.log(data.length); return data; }

Skontrolujme činnosť našej funkcie a nájdime dĺžku reťazca:

console.log(myFunc('abcde'));

Výsledok vykonaného kódu:

5 'abcde'

A teraz odovzdajme do parametra pole:

console.log(myFunc(['a', 'b', 'c']));

Výsledok vykonaného kódu:

3 [ 'a', 'b', 'c' ]
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ť