Функсияҳои боркашӣ дар 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'); // матни ҷориро бармегардонад