⊗tsSpGnIms 35 of 37 menu

TypeScripti generikumite piirangud

Ühes eelmistest õppetundidest loome üldistatud tüübi funktsiooni, mis pidi väljastama sinse edastatud parameetri pikkuse. Siiski tekkis kompileerimisel viga, kuna mitte kõik tüübid ei pruugi omada pikkust:

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

Sel juhul parandasime olukorda, muutes üldistatud tüübi üldistatud massiivi tüübiks. Kuid TypeScriptis on võimalik luua generikumite piiranguid. Selleks kirjutame nurksulgudes, muutuja T järele võtmesõna extends. Pärast seda kirjutame loogelistes sulgudes uue muutuja str stringi tüüpi. Ülejäänud funktsiooni kood jääb muutmata:

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

Selgub, et üldistatud tüüp pärib tüübi muutujalt str, mis on määratud loogelistes sulgudes. Nüüd kontrollime oma funktsiooni tööd ja loome muutuja myStr, viidates tüübile str, ja määrame sellele väärtuse loogelistes sulgudes:

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

Väljutame funktsiooni myFunc, mitte unustades uuesti määrata selle tüüpi ja edastame muutuja myStr parameetrina:

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

Õppetükis käsitletud näite põhjal loo funktsioon arvumassiivi pikkuse leidmiseks.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu