Secara sederhana function overload adalah, dengan menggunakan fungsi yang ada, kita bisa menggunakan parameter yang berbeda.
Jika pada modul sebelumnya, fungsi dapat menerima array atau string, dengan function overload, kita bisa mendefinisikan parameter baru.
Contohnya, kita akan buat 2 function overload yang menerima string saja dan array saja.
Untuk membuat function overload, cukup menuliskan function tepat diatas function yang akan dioverload.
function totalLength2(x: string, y: string):number
function totalLength2(x: any[], y: any[]):number
function totalLength2(x: (string|any[]), y: (string|any[])): number{
var total: number = x.length + y.length;
x.slice(0)
if(x instanceof Array){
x.push('ABC');
}
if(x instanceof String){
x.substring(2);
}
return total;
}
Dapat diperhatikan pada gambar dibawah, saat fungsi totalLength2 dipanggil, text editor memberikan 2 pilihan untuk fungsi.
Jika Anda lihat hasil kompilasi, tidak ada fungsi overload yang ditambahkan. Jadi dapat kita bandingkan function overload itu seperti metadata. Yang membantu kita membuat kode yang lebih baik.
Mungkin untuk developer javascript berpengalaman, nampaknya pekerjaan sia-sia. Program akan menjadi lebih panjang.
Namun untuk jangka panjang, penggunaan TypeScript akan sangat membantu, karena maksud dari code yang dibuat lebih jelas, memudahkan penggunaan dan maintenance.
function totalLength2(x, y) {
var total = x.length + y.length;
x.slice(0);
if (x instanceof Array) {
x.push('ABC');
}
if (x instanceof String) {
x.substring(2);
}
return total;
}