是的,TypeScript 支持函数重载。但是实现很奇怪。当我们在 TypeScript 中执行函数重载时,我们只能实现一个具有多个签名的函数。
//Function with string type parameter
function add(a:string, b:string): string;
//Function with number type parameter
function add(a:number, b:number): number;
//Function Definition
function add(a: any, b:any): any {
return a + b;
}
在上面的例子中,前两行是函数重载声明。它有两个重载。第一个签名有一个字符串类型的参数,而第二个签名有一个数字类型的参数。第三个函数包含实际的实现,并有一个类型为 any
的参数。任何数据类型都可以采用任何类型的数据。然后,实现检查所提供参数的类型,并根据供应商参数类型执行不同的代码。