⊗tsSpGnIms 35 of 37 menu

Маҳдудиятҳои умумӣ дар TypeScript

Дар яке аз дарсҳои гузашта мо функсияи навъи умумӣ эҷод кардем, ки бояд дарозии параметри дар он гузаронидашударо бароварда мекард. Аммо ҳангоми тарҷума ба мо хатогӣ дода шуд, зеро ҳама навъҳо наметавонанд дарозӣ дошта бошанд:

function myFunc < T > (data: T): T { console.log(data.length); // хатогӣ return data; }

Дар он ҳолат мо вазъиятро ислоҳ кардем, тағир додани навъи умумӣ ба навъи массиви умумӣ. Аммо дар TypeScript имконияти эҷоди маҳдудиятҳои умумӣ мавҷуд аст. Барои ин дар қавсҳои кунҷӣ, пас аз тағирёбандаи T калимаи калидии extends менависем. Пас аз он дар қавсҳои каҷ навъи тағирёбандаи str навъи сатрӣ. Коди боқимондаи функсия бе тағир менамояд:

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

Малом мешавад, ки навъи умумӣ навъи тағирёбандаи str-ро, ки дар қавсҳои каҷ нишон дода шудааст, мерос мегирад. Ҳоло биёед кори функсияи худро санҷем ва тағирёбандаи myStr эҷод кунем, ки ба навъи str ишора мекунад, ва ба он дар қавсҳои каҷ қимат таъин кунем:

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

Биёед функсияи myFunc-ро даъват кунем, фаромӯш накарда боз навъи онро нишон диҳем ва тағирёбандаи myStr-ро ҳамчун параметр бигузаронем:

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

Бар асоси мисоли дар дарс баррасӣшуда, функсияро барои ёфтани дарозии массиви ададӣ таъин кунед.

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