TypeScript-daky funksiýalaryň ýüklenmesi
Wagtyň geçmegi bilen, funksiýalar duş gelýär berlen parametrlere baglylykda, tipi üýtgeýän gymmatlary gaýtaryp berýär. Munuň üçin TypeScript-de funksiýalaryň ýüklenmesi ulanylýar. Ol funksiýanyň dürli wariantlaryny görkezmäge mümkinçilik berýär.
Geliň mysal bilen seredeliň. Bizde setiriň simwollaryny arapa bölýän funksiýa bolsun:
function splitStr(str: string): string[] {
return str.split('');
}
Şeýle hem, bizde sanyň simwollaryny sanlara bölýän funksiýa bolsun:
function splitNum(num: number): number[] {
let str: string = String(num);
let arr: string[] = str.split('');
return arr.map(elem => +elem);
}
Geliň her iki funksiýany birleşdireliň. Täze funksiýa parametriň tipine baglylykda ýa sanlaryň arasyny ýa-da setirleriň arasyny gaýtarmaly.
Bizimiň funksiýamyzyň dürli gol çekmelerini bildirmek üçin ýüklenmeden peýdalanalyň:
function splitVal(val: number): number[];
function splitVal(val: string): string[] {
// her iki gol çekmeniň amala aşyrylyşy
}
Indi funksiýanyň amala aşyrylyşyny ýazalyň. Onuň kodunda biz şert bilen kesgitlemeli, funksiýanyň haýsy gol çekmesiniň işjeňleşendigini, we şoňa görä dogry tipdäki netije bilen gerekli kody işletmeli:
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);
}
}
Beýleki dillerden tapawutlylykda, TypeScript-de ýüklenmede bir funksiýa döredilýär. Bir atly, ýöne dürli gol çekmeli birnäçe funksiýa ýasap bolmaýar.
DOM elementiniň tekstini gaýtarýan ýa-da üýtgedýän funksiýany ýazyň. Ol aşakdaky ýaly işlemeli:
text('#elem', 'text'); // tekst goýar
text('#elem'); // häzirki tekstini gaýtarar