⊗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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել