TypeScript හි ශ්රිත අධිභාරය
සමහර විට ඇතිවන පරාමිතීන් මත රඳා පවතින වර්ගයක් ආපසු දෙන ශ්රිත හමු වේ. මේ සඳහා TypeScript හි ශ්රිතවල අධිභාරය භාවිතා කරයි. එය ශ්රිතයේ විවිධ සංඥා-ලකුණු (signatures) පෙන්වීමට ඉඩ සලසයි.
අපි උදාහරණයක් බලමු. අපට තියෙනවා කියලා හිතමු, සූත්රයක අකුරු අකුරු අරාවකට කඩා දමන ශ්රිතයක්:
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'); // වත්මන් පාඨය ආපසු දෙයි