TS 中的函数重载
TypeScript 中的函数重载(Function Overload)较为特别,其允许的是声明(Declaration)重载,而不是实现(Implementation)重载。
意即,不论在声明中对函数重载多少次,也仅允许有唯一一个实现,且这种实现必须兼容所有声明。
这可以从各重载的返回值必须相同看出, 因为 JavaScript 的函数调用时的参数(arguments)处理就是粗暴的数组传递,所以函数的签名就完全由返回值确定。
所以 TS 中函数重载的意义主要在于,使 IDE 能够提供函数重载这种思维模式的代码提示。
完全符合 TypeScript 作为 JavaScript 的注释的角色,除了class
和enum
外不具备任何运行时功能。