温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
来吧,接下来咱们来看看泛型约束吧,啊何为泛型约束呢?我们来看说如果呀,我们直接对一个泛型的参数取蓝色属性,那会报错的,因为这个泛型根本就不知道它有这个属性是吧?那这个时候呢,我们可以通过一个接口来去约束啊约束这个问题来看一下怎么做。Src里边新建一个文件,来个零五杠,叫做泛型约束,然后点TS。m.tS当中呢,去引入这个东西啊,先注释到上面的代码,来一个po的点杠泛型约束,格式化一下保存。好在这里边啊,这样我们把这句话拿过来。然后再理解一下它是什么意思啊,来看我写作的代码啊。走着。我写成一个很普通的一个函数啊,比如说叫get length括号。然后呢,里边来上一个X加括号之后呢,我让它返回值是一个number类型啊,那我就直接return什么呢?x.less这样写属于什么呢?呃,GS和TS的语法合并了是吧?但是呢,我不确定当前这个类型是什么类型,那我可以使用泛型是吧?
01:07
T,然后呢,它的这个参数的类型也是什么呢?T啊,这个时候报错了。好看一下啊,类型T上不存在属性LA,就说我都不知道你当前X到底是什么类型的。那我都不知道你是什么类型的数据,你里边有没有Les这个属性啊,所以说他就会报错。哎,那怎么解决这个问题呢?是吧,我们可以通过接口来进行约束,定义一个接口,然后用来约束约束啥,咱们再看啊。首先来一个interface,再来一个I,比如说叫做LS吧,哎,LTH大括LTH冒号来一个number什么意思啊,就说我这个接口里边有一个属性,接口中有一个纳尼,有一个属性什么呢?啊,那用来约束什么呢?约束将来的某个类型中必须要有LGTH这个属性。
02:04
好了,那现在我们看啊怎么做。我让这个T。然后什么呢?I这个接口。那就意味着将来你给我传过来的这个数据,这个数据的类型呢,里边必然应该有Les的这个属性才可以,然后它就不会报错了,是吧?好,那接下来咱们看一把can.log括号里边写什么?Get lengths,然后尖括号里边写个three。是吧,然后括号里边给它传输一个数据,这个数据比如说是what啊,有浓煞雷好搞定,然后保存一下,我们看看啊有没有数据。我们现在来看一下是二三是没有问题的是吧,如果说我把这个代码卡复制一份,然后里边传了一个number。那这个时候当然这里边应该传入一个数字是吧?啊123,我们看一下报错了它什么呢?类型number不满足约束ILAS这个接口,因为这个接口早上说你必须得有LAS属性啊,那number的数据值当中是没有这个LAS属性的,所以说报错啊,那这个就是所谓的什么的泛型因素啊OK。
我来说两句