继续我之前所说的typescript的类,接下来我们说一下typescript中接口和类的关系吧。接口对类的一部分的行为进行抽象。
继承的困境我们在面对对象中,一个类只能继承自另外的一个类,有的时候不同的类有共同的特性,用字类继承父类的方法很难来完成。
类可以使用implements来实现接口所以我们可以将特性提取出来做成接口然后用一个称之为implements的关键字来实现,这样就大大提高了面向对象的灵活性。
创建一个名字叫car的类,他有一个方法的名字叫switchradio,然后我们又有一个新的类出现了一个名字叫cellphone 的类,他也有一个方法的名字叫做switchradio。typescript类和接口
这时候我们发现这两个类有一个相同的方法,我们考虑将它提取出来,如果用弗雷德形式,需要找到一个符合的父类,但是可以看出,cellphone和car大概是没有符合的父类了。
这时候我们就可以把这个方法抽取出来,当成一个interface,然后让这两个类都去实现它。

我们创建一个radio的interface,然后创建一个switchradio的方法。创建方法的写法和类有些类似,但是后面可以看到是冒号而非大括号。然后我们设置它的返回值位void这个关键字,意思是它啥都不返回。
typescript类和接口 然后我们在类的后面使用implements来让类实现这个接口。
typescript类和接口
这样,就完成了接口的工作,接下来interface实现了一个契约功能,我们的类必须要又这个switchradio方法才可以,如果我们删除了是会报错的。现在我们新增一个方法,称之为检查电池的容量,这个类名为cellphone,因为car不存在,所以我们要新创建一个接口。
typescript类和接口 接下来我们的cellphone要实现多个接口,我们需要在接口名字后面加逗号。
typescript类和接口

通过上面的例子,可以体会到接口的灵活程度了吧,接下来接口还可以有继承的关系,注意这是接口的继承而非class的继承,但是虽然这么说,实际上接口的继承也跟class的继承类似,我们新建一个接口叫RadioWithBattery。它继承radio。
typescript类和接口
这样子就将下面的双接口替换成单接口就可以了。typescript类和接口
现在我想大家应该能明白一些interface的精髓了,它就想是某种契约来约定class的样子,只要我们走路像鸭子,叫起来像鸭子我就不管它是什么东西,都叫做鸭子我们可以通过interface来约束一些毫不相关的东西。

本文作者:博主:     文章标题:typescript 类和接口
本文地址:https://zjzdmc.top/jsfx/126.html     
版权说明:若无注明,本文皆为“Datehoer的Blog-个人博客-技术分享”原创,转载请保留文章出处。
最后修改:2021 年 04 月 19 日 03 : 59 PM
如果觉得我的文章对你有用,请随意赞赏