type fun = {
(normal:number):number;
(normal:number,abnormal:string):string;
};
const f:fun=(a:number,b?:string)=>{
return b || a;
}
我不太明白这段代码为什么会报错。
typescript认为我返回值的格式为 number|string,与重载不匹配。
但实际上这段代码执行的逻辑确实是只有第一个参数,就返回number,如果有第二个参数就返回string。
请问我该如何写才合法呢?
如果你这样定义就没问题
fun
是两个函数签名的重载,而f
只有一个签名。