TypeScript-da funksiyalarni qayta yuklash
Ba'zan, berilgan parametrlar turiga qarab qaytariladigan qiymat turi farq qiladigan funksiyalar uchraydi. Buning uchun TypeScript-da funksiyalarni qayta yuklash qo'llaniladi. Bu funksiyaning turli imzolar variantlarini ko'rsatish imkonini beradi.
Keling, bir misolni ko'rib chiqaylik. Faraz qilaylik, bizda qator belgilarini harflar massiviga ajratadigan funksiya mavjud:
function splitStr(str: string): string[] {
return str.split('');
}
Shuningdek, faraz qilaylik, bizda raqam belgilarini raqamlar massiviga ajratadigan funksiya mavjud:
function splitNum(num: number): number[] {
let str: string = String(num);
let arr: string[] = str.split('');
return arr.map(elem => +elem);
}
Keling, ikkala funksiyani bittada birlashtiramiz. Yangi funksiya parametr turiga qarab raqamlar massivi yoki qatorlar massivini qaytarishi kerak.
Funksiyamizning turli imzolarini e'lon qilish uchun qayta yuklashdan foydalanamiz:
function splitVal(val: number): number[];
function splitVal(val: string): string[] {
// ikkala imzoning amalga oshirilishi
}
Endi funksiyani amalga oshirishni yozamiz. Uning kodida biz shart bilan aniqlashimiz kerak, qaysi funksiya imzolari ishlaganligini va shunga qarab kerakli natija turi bilan kerakli kodni ishga tushirishimiz kerak:
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);
}
}
Boshqa tillardan farqli o'laroq, TypeScript-da qayta yuklash bitta funksiya yaratadi. Bir xil nomli, lekin turli imzoli bir nechta funksiyalarni yaratish mumkin emas.
DOM elementining matnini qaytaradigan yoki o'zgartiradigan funksiya yozing. U quyidagicha ishlashi kerak:
text('#elem', 'text'); // matnni o'rnatadi
text('#elem'); // joriy matnni qaytaradi