TypeScript 中的函数重载

Posted

技术标签:

【中文标题】TypeScript 中的函数重载【英文标题】:Function Overloading in TypeScript 【发布时间】:2017-07-26 09:26:45 【问题描述】:

TypeScript 不支持函数重载吗?

我有这两个功能:

checkCredits() 
   // my code


checkCredits(header: any) 
    // my code

我这样调用第二个函数:

this.checkCredits(this.myObject); 

在 vs 代码中编译时出现以下错误: 提供的参数与调用目标的任何签名都不匹配。 重复的函数实现。

【问题讨论】:

相关? ***.com/questions/39689763/… 【参考方案1】:

打字稿中的重载是通过使用可选参数来完成的。

checkCredits(header?: any) 
    // my code

现在你可以打电话了:

this.checkCredits(this.myObject); 

this.checkCredits(); 

缺点你在同一个函数中有逻辑。你可以检查issue

【讨论】:

谢谢!我没有意识到这一点。 @Rich 你也可以做到this 方式。但在您的示例中似乎没有必要

以上是关于TypeScript 中的函数重载的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript“字符串文字”子集不能分配给重载函数中的完整集

TS 函数重载

为啥 TypeScript 中没有重载的构造函数实现?

为啥 Typescript 不以正确的方式支持函数重载?

使用枚举重载 TypeScript 函数

Typescript子类函数重载