⊗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; }

Кейин бизнинг функциямизда extends калит сузи орқали ILength дан мерос оладиган умумлашган типни белгилаймиз:

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çeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш