⊗tsSpGnIms 35 of 37 menu

Apribojimai generikuose TypeScript kalboje

Vienoje iš ankstesnių pamokų mes sukūrėme bendro tipo funkciją, kuri turėjo atspausdinti perduoto parametro ilgį. Tačiau kompiliavimo metu mums buvo pateikta klaida, nes ne visi tipai gali turėti ilgį:

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

Tuo atveju mes ištaisėme situaciją pakeitę bendrą tipą į bendro masyvo tipą. Bet TypeScript kalboje yra galimybė sukurti generikų apribojimus. Norėdami tai padaryti, kampiniuose skliaustuose, po kintamojo T rašome raktinį žodį extends. Po jo garbanotuose skliaustuose užrašome naują kintamąjį str eilutės tipo. Likusios funkcijos kodas liks be pakeitimų:

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

Pasirodo, kad bendras tipas paveldi kintamojo str tipą, nurodytą garbanotuose skliaustuose. Dabar patikrinkime mūsų funkcijos veikimą ir sukurkime kintamąjį myStr, nurodantį į tipą str, ir priskirkime jai reikšmę garbanotuose skliaustuose:

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

Iškvieskime funkciją myFunc, ne pamiršdami vėl nurodyti jos tipą ir perduokime kintamąjį myStr kaip parametrą:

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

Remdamiesi pamokoje nagrinėtu pavyzdžiu, apibrėžkite funkciją skaitinio masyvo ilgiui rasti.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti