Fwio

TS 中的函数重载

TypeScript 中的函数重载(Function Overload)较为特别,其允许的是声明(Declaration)重载,而不是实现(Implementation)重载。

意即,不论在声明中对函数重载多少次,也仅允许有唯一一个实现,且这种实现必须兼容所有声明。

这可以从各重载的返回值必须相同看出, 因为 JavaScript 的函数调用时的参数(arguments)处理就是粗暴的数组传递,所以函数的签名就完全由返回值确定。

所以 TS 中函数重载的意义主要在于,使 IDE 能够提供函数重载这种思维模式的代码提示

完全符合 TypeScript 作为 JavaScript 的注释的角色,除了classenum外不具备任何运行时功能。