TypeScript重载函数case的作用C++(百度百科)中的一个概念:函数重载泛指函数重载。重载函数是函数的特例。为了便于使用,C++允许多个同名函数在同一作用域内声明相似的函数,但这些同名函数的形参(指参数的个数、类型或顺序)必须不同,也就是说,用同一个函数来完成不同的功能。这是重载函数。简单总结一下,同名不同参数的函数就是重载函数。1、Vue3ref声明方法源码中的重载函数示例2、举一个应用场景中的案例缺点函数ToAdd(a:string|number,b:string|number):string|编号|undefined{//只需要字符Stringmergeif(typeofa==='string'&&typeofb==='string'){return`${a+b}`;};//只需要数字相加if(typeofa==='number'&&typeofb==='number'){returna+b;};}大量的联合类型有两个缺点:如果业务中有类似的需求,添加大量的联合类型声明需要特殊的判断逻辑,并且无法判断最终返回值是字符串还是数字。编辑器提示无法判断是字符串还是数字。3.使用重载函数解决问题//2个重载声明无需添加函数体functionToAdd(a:number,b:number):number;functionToAdd(a:string,b:string):string;functionToAdd(a:any,b:any):any{if(typeofa==='string'&&typeofb==='string'){return`${a+b}`;}returna+b;}consttest=ToAdd(1,'233');//异常提示异常提示//编辑器也可以识别对应的类型constaddString=ToAdd('233','233');//正确的编辑器识别constaddString:stringconstaddNum=ToAdd(1,1);//正确的编辑器识别constaddNum:number
