⊗tsSpGnPTL 36 of 37 menu

Истифода бурдани параметрҳои типӣ дар маҳдудиятҳои ҷенерикҳо дар TypeScript

Инчунин дар TypeScript имконияти эълон кардани як параметри типӣ мавҷуд аст, ки бо параметри дигари типӣ маҳдуд карда мешавад. Ин зарур аст, вақте ки бояд хусусиятҳоро аз як объект ба объекти дигар нусхабардорӣ кард, дар ҳоле ки аз ин ки мо хусусияти иловагӣ нафиристем, хатари он нест.

Биёед мисоли зеринро дида бароем. Боз ба функсияи myFunc бармегардем, ки дарозии тағирёбандаро муайян мекунад:

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

Аммо акнун мо мехоҳем, ки ин функсия фақат бо он навъҳое кор кунад, ки хусусияти length доранд. Барои ин интерфейси ILength-ро месозем, ки ба он хусусияти length-ро аз навъи ададӣ таъин мекунем:

interface ILength { length: number; }

Баъд дар функсияи худ навъи умумиро таъин мекунем, ки аз ILength мерос мегирад тавассути калимаи калидии extends:

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

Коди пурраи мо ин тавр ба назар мерасад:

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

Биёед кори функсияи худро санҷем ва дарозии сатрро пайдо кунем:

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

Натиҷаи коди иҷрошуда:

5 'abcde'

Ва акнун массивро ба параметр мефиристем:

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

Натиҷаи коди иҷрошуда:

3 [ 'a', 'b', 'c' ]
Тоҷикӣ
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 истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан