menu

Ֆունկցիաների բեռնաթափում TypeScript-ում

Երբեմն հանդիպում են ֆունկցիաներ, որոնք վերադարձնում են արժեքներ, որոնց տեսակը կախված է փոխանցված պարամետրերից: Դրա համար TypeScript-ում օգտագործում են բեռնաթափում ֆունկցիաների: Այն թույլ է տալիս նշել ֆունկցիայի տարբեր սիգնատուրաների տարբերակներ:

Դիտարկենք օրինակով: Ենթադրենք, մենք ունենք ֆունկցիա, որը բաժանում է տողի նիշերը տառերի զանգվածի:

function splitStr(str: string): string[] { return str.split(''); }

Ենթադրենք, մենք ունենք նաև ֆունկցիա, որը բաժանում է թվի նիշերը թվանշանների զանգվածի:

function splitNum(num: number): number[] { let str: string = String(num); let arr: string[] = str.split(''); return arr.map(elem => +elem); }

Եկեք միավորենք երկու ֆունկցիաները մեկի մեջ: Նոր ֆունկցիան, կախված պարամետրի տեսակից, պետք է վերադարձնի կամ թվերի զանգված, կամ տողերի զանգված:

Օգտագործենք բեռնաթափումը, որպեսզի հայտարարենք մեր ֆունկցիայի տարբեր սիգնատուրաներ:

function splitVal(val: number): number[]; function splitVal(val: string): string[] { // երկու սիգնատուրաների իրականացում }

Այժմ գրենք ֆունկցիայի իրականացումը: Դրա կոդում մենք պետք է պայմանով որոշենք, թե ֆունկցիայի սիգնատուրաներից որն է աշխատել, և կախված դրանից, գործարկենք անհրաժեշտ կոդը՝ անհրաժեշտ տեսակի արդյունքով:

function splitVal(val: number): number[]; function splitVal(val: string): string[] { if (typeof val === 'string') { return val.split(''); } else { let str: string = String(val); let arr: string[] = str.split(''); return arr.map((elem: string): number => +elem); } }

Ի տարբերություն այլ լեզուների, TypeScript-ում բեռնաթափման ժամանակ ստեղծվում է մեկ ֆունկցիա: Հնարավոր չէ ստեղծել մի քանի ֆունկցիա մեկ անունով, բայց տարբեր սիգնատուրաներով:

Գրեք ֆունկցիա, որը կվերադարձնի կամ կփոխի DOM տարրի տեքստը: Այն պետք է աշխատի հետևյալ կերպ.

text('#elem', 'text'); // կսահմանի տեքստը text('#elem'); // կվերադարձնի ընթացիկ տեքստը
Հայերեն
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-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել