Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗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