⊗tsSpGnPTL 36 of 37 menu

Utilizarea parametrilor tipici în constrângerile genericulor în TypeScript

De asemenea, în TypeScript există posibilitatea declarării unui parametru tipic, care va fi constrâns de un alt parametru tipic. Acest lucru este necesar atunci când trebuie să copiem proprietăți dintr-un obiect în altul, în același timp asigurându-ne că nu transmitem o proprietate în plus.

Să analizăm următorul exemplu. Să ne întoarcem la funcția myFunc, care determină lungimea unei variabile:

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

Cu toate acestea, acum dorim ca această funcție să funcționeze doar cu acele tipuri care au proprietatea length. Pentru a face acest lucru, să creăm interfața ILength, căreia îi vom atribui proprietatea length de tip numeric:

interface ILength { length: number; }

Apoi, în funcția noastră, vom defini un tip generic care moștenește de la ILength prin cuvântul cheie extends:

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

Iată cum arată codul nostru complet:

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

Să verificăm funcționarea funcției noastre și să găsim lungimea unui șir de caractere:

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

Rezultatul codului executat:

5 'abcde'

Și acum să transmitem un array ca parametru:

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

Rezultatul codului executat:

3 [ 'a', 'b', 'c' ]
Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge