Open In App

How to achieve function overloading in TypeScript ?

Last Updated : 16 Mar, 2022
Like Article

In this article, we will try to understand some basic details which are associated with the concept of function/method overloading, further will see how we could implement function overloading in TypeScript.

Let us first understand some basic facts involved in function/method Overloading.

Function/Method Overloading:

  • Method overloading is the process in which one method could be used multiple times with same name and different parameter types or return types.
  • Function name and number of parameters in overloaded functions should be same.
  • Return type of overloaded functions along with data types of parameters could be altered (changed).
  • Method Overloading provides code reusability, which saves time and efforts.
  • This process also saves memory space, so that the program execution becomes bit faster.
  • This process also increases code readability.

After analyzing some of the basic theoretical aspects related to Method Overloading, let us analyze its implementation in TypeScript through the following code examples.

Example 1: In this example we will create several functions (of the same name, but different parameters data types and function’s return type) through which we will add several data passed in by the user of different data types.


function addData(data1 : string, data2 : string) : string;
function addData(data1 : number, data2 : number): number;
function addData(data1 : any, data2 : any){
    return data1+ data2;
console.log(addData("Hello ", "GeeksforGeeks"));  
console.log(addData(20, 30));


Hello GeeksforGeeks

Example 2: In this example we will be Implementing function Overloading in a class containing different methods of the same name and different parameter’s data types and method’s return types and further we will be using these methods to print our data in a different manner.


class Data
    public displayData(data: string): number;  
    public displayData(data: number): string;  
    public displayData(data : any): any   
        if (typeof(data) === 'number')  
            return data.toString();  
        if (typeof(data) === 'string')  
            return data.length;  
let object = new Data();  
console.log("Result is : " + object.displayData(123456));
let stringData = "GeeksforGeeks";  
console.log("Length of String " +  stringData 
    + " is : " + object.displayData(stringData));


Result is : 123456
Length of String GeeksforGeeks is : 13

Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads