00:00
好,下边呢,咱们来说说函数重载啊,这个东西还是比较有用的啊,呃,咱们也是通过一个小例子来说一说这个函数重载是怎么回事,我呢先在Vs code里边新建一个文件啊。这个我们给它起个名字,叫做零四杠函数重载点TS。呃,命点TS当中呢,我们先把之前的代码给它出掉。然后引入当前这个TS文件函数重载。函数重载啊,何为函数重载呢?就是函数名字相同,然后呢,函数的这个参数啊及个数不同啊,这样呢,就是称之为函数承载,它有什么用啊。咱们先把这个基本的代码写出来。然后呢,咱们通过一个例子来看一看啊好。呃,这个例子呢,咱们就从这儿。把他的这个需求拿过来啊,咱们来一起看一下。
01:02
说需求说我们应该有一个ad函数,然后呢,它可以接收两个字符串类型。进行拼接,或者说也可以接收两个数字,然后呢,进行相加,那现在来看的话,我们就先把这个函数定义出来呗,是吧?哎,这样,那首先它应该有两个参数呗,第一个比如说是X,可能是字符串类型,也有可能是数字类型,是不是,然后呢,第二个是Y,可能也是字符串类型,或者说也是数字类型。好,然后呢,返回值要么是字串,要么是数字,哎,这个位置应该是竖线啊。String或者是number,那现在我们来看这种情况的话,就是说ad这个函数它有两个参数,这两个参数呢,要么是字串,要么是数字的小返回值呢,要么是字串,要么是数字,对吧?按照这个情况来看的话,我要是直接返回X加Y的话,这也不合适啊。对吧,为什么不合适呢?咱们来看一下,说运算符加不能应用于字符串。
02:00
或者是数字和字串,或者是数字,你说现在这么写,通过TS的这个提示来看的话,是不允许我们这么去做的,是不是啊,因为你这块有可能是数字,有可能是字符串,后边这个呢,也有可能是数字,也有可能是字符串,所以说不明确到底你是两个字符串拼接,还是两个数字相加,还是说一个字符串一个数字进行拼接,是吧,有问题,哎,那怎么做呢?哎,这个时候我们可以这么干啊。判断一下。如果呀,当前的X还不够。X它如果是字符串类型的。并且呢,这个y type of y,它也是什么呢。这个字符串类型的,那我此时我就应该让两个字符串拼接呗,X加Y对不对,Else if的话,如果说type of l和type of y它俩都是数字的情况下。
03:01
诶,那我这个时候也是返回的瑞特X加Y。对吧,这个就是相加,这个是属于拼接啊,字符串拼接。那下边这个是属于数字相加。哎,当然通过我们现在所写的这个代码上面这个参数的类型来看啊,我们应该有四种情况,要么两个都是字符串,要么两个都是数字,要么一个字符串一个数字,要么一个数字一个字符串,对不对,而我这里边只针对两个字符串或者两个数字进行操作,因为上边的需求就是这个样子,是吧,现在是属于什么呢?函数的声明。函数说明,根据这个需求呢,我们这个代码是这么写的,那函数调用的时候就出事了啊,比如说我们来看啊,如果说我在这个位置这么写,我是很正经的去写,比如说这个是什么呢?呃,诸葛。
04:01
后边比如说我再来一什么空明,两个都是租串。这两个。两个参数都是字符串。那现在肯定是没有问题的,我呢把它咔咔再来几个啊,这好有点多了。去掉它还有一个十。这个呢,去掉它来一个20,好,现在呢是两个参数都是数字。现在这么来看的话,有没有问题?好,但是用户在调用函数的时候,它有的时候会传入非法的数据。那就是说,此时如果传入的是非法的数据。就出事了,比如说啊,我们来看我在这呢,调爱的这个方法,我第一个传的是字符串啊,真香第二传的是数字。或者说诶,我这个位置。它啊,传入的是100,后边传入的是真好。
05:00
那现在这两个函数的调用,相当于说传入的就是非法数据了,因为我希望要么你就给我传两个字串,要么你就给我传两个数字,因为这个需求,所以说我才写了这样的函数,但是我写的这个函数并不能够非常满足上面的需求。啊,我写这个函数满足的是下边这四种条件,而我只需要两个是吧?那我怎么做这个事情呢?现在啊,我们先保存一下,看一下结果,刷新一下。看诸葛孔明30AN要说这两个函数的调用,由于传的数据和我的要求是不符的,但是我的函数是符合的,所以说就出了问题了,是吧?像遇到这种问题,我希望什么呢?如果此时传入的是非法的数据的话,那么此时TS应该给我。提示出错误的这个信息内容是吧,应该给我爆红就是爆红。报红色的这个什么错误吧,错误信息吗?但是现在有吗?没有,那这个时候怎么解决这个问题呢?诶我们可以使用什么呢?函数的承载。
06:04
函数重载声明啊,看我怎么写方个来一个艾声明这个函数,那我里边的两个参数X要么是。Y要么就是4G,并且返回值也是走串的是吧,好。要么啊,那我就再来一个呗,两个吧,是吧,要么这个X是number类型的,Y也是number类型的,那返回值也是number类型的,好,这个就是所谓的函数重载声明是吧?同名字相同参数的类型可能不一样,或者说个数也有可能是不一样的啊好,现在我们来看一下,下边这块就给我们爆红了是吧?啊,没有与此调用匹配的承载,也就是说你现在下边两个传的数据是非法的,跟我函数的这两个声明是不匹配的是吧?这就是我们这个所谓的函数重载它的一个意义所在啊好,那我现在呢,把这两个就除掉了。刚才呢,咱们讲的是函数的重载问题啊,好保存一下。
我来说两句