前端知库

函数重载、联合参数与泛型怎样选择?

参考答案

如果多个输入类型对应相同的处理方式和返回类型,联合参数往往最清楚;如果输入与输出存在可表达的类型关系,泛型更合适;当调用形式明确不同且返回值随形式变化时,可使用重载。

重载签名面向调用者,最后的实现签名必须兼容各个重载,但不会自动作为额外公共调用形式。参数可选、默认值和 rest 参数也应根据实际调用方式建模,避免为方便而使用 any。

函数参数的可赋值性还涉及变型和 strictFunctionTypes,回调位置不能只凭“子类型更具体”判断安全。优先保持 API 简单,并通过实际调用示例或类型测试验证重载选择与推断结果。