⊗tsSpGnTV 30 of 37 menu

TypeScriptда типик ўзгарувчилар

Женерик тушунчасини яхширок тушуниш учун келайлик, биринчи функциямизни - аёллик функцисяси яратайлик. Бундай функцися ўзига берилган нарсани айнан ўша типи билан қайтаради.

Келайлик, аввалбошда функциямизнинг вариантларини алаҳида ёзайлик.

Параметри сифатида сон қабул қиладиган ва сон қайтарадиган функцияни ёзайлик:

function func(data: number): number { return data; }

Энди параметри сифатида сатр қабул қиладиган ва сатр қайтарадиган функцияни ёзайлик:

function func(data: string): string { return data; }

Энди биз буларнинг ҳаммасини битта функция бажаришини хоҳлаймиз. Яъни биз умумийлаштириш амалга оширмоқчимиз.

Бунинг учун биз типик ўзгарувчи дан фойдаланамиз, у маълумот турларини ўзида сақлайди. Бундай ўзгарувчи функция параметрлари билан турғизғуч қавслар олдидаги бурчакли қавсларда эълон қилинади. Келайлик, уни T ном билан эълон қилайлик (исталган ном бериш мумкин):

function func <T>(бу ерда параметрлар) { return data; }

Шундан сўнг бизда T ўзгарувчиси пайдо бўлади, уни параметр типини қўйиш учун ишлатиш мумкин бўлади, сўнгра уни қайтариладиган қиймат сифатида кўрсатиш мумкин.

Параметримизга турни ўзгарувчимиз шаклида кўрсатайлик:

function func <T>(data: T) { return data; }

Натижада параметр қандайдир турда ўтказилиши мумкин бўлади, ва бу тур бизнинг T ўзгарувчимизда сақланади.

Энди T ўзгарувчисининг қийматини функция натижасини кўрсатиш учун ишлатайлик:

function func <T>(data: T): T { return data; }

Энди функция натижасининг тури параметр туридан олинади. Келайлик, текширайлик.

Функцияни сон билан чақирайлик:

console.log( func(3) ); // 3 ни чиқаради

Функцияни сатр билан чақирайлик:

console.log( func('x') ); // 'x' ни чиқаради

Параметри сифатида ёки иккита сон, ёки иккита сатр қабул қиладиган функция яратинг. Функция ўз натижаси сифатида параметрлар йиғиндисини қайтариши керак.

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