Datehoer的博客
我本将心向明月,奈何明月照沟渠
Datehoer的博客

当前位置:主页 > 技术分享 > typescript 类和接口

typescript 类和接口

浏览: 作者:Datehoer 发布日期:2021-01-17 22:26:24 来源: 原创
继续我之前所说的typescript的类,接下来我们说一下typescript中接口和类的关系吧。

接口对类的一部分的行为进行抽象。

继承的困境

我们在面对对象中,一个类只能继承自另外的一个类,有的时候不同的类有共同的特性,用字类继承父类的方法很难来完成。

类可以使用implements来实现接口

所以我们可以将特性提取出来做成接口然后用一个称之为implements的关键字来实现,这样就大大提高了面向对象的灵活性。

 

创建一个名字叫car的类,他有一个方法的名字叫switchradio,然后我们又有一个新的类出现了一个名字叫cellphone的类,他也有一个方法的名字叫做switchradio

typescript类和接口

这时候我们发现这两个类有一个相同的方法,我们考虑将它提取出来,如果用弗雷德形式,需要找到一个符合的父类,但是可以看出,cellphonecar大概是没有符合的父类了。

这时候我们就可以把这个方法抽取出来,当成一个interface,然后让这两个类都去实现它。

我们创建一个radiointerface,然后创建一个switchradio的方法。创建方法的写法和类有些类似,但是后面可以看到是冒号而非大括号。然后我们设置它的返回值位void这个关键字,意思是它啥都不返回。


typescript类和接口

interface Radio 
switchRadio( trigger : 
oolean): 
void;

然后我们在类的后面使用implements 来让类实现这个接口。


typescript类和接口

这样,就完成了接口的工作,接下来interface实现了一个契约功能,我们的类必须要又这个switchradio方法才可以,如果我们删除了是会报错的。

 

现在我们新增一个方法,称之为检查电池的容量,这个方法cellphone有而car没有,所以我们要新创建一个接口。



typescript类和接口
接下来我们的cellphone要实现多个接口,我们需要在接口名字后面加逗号。
typescript类和接口
通过上面的例子,可以体会到接口的灵活程度了吧,接下来接口还可以有继承的关系,注意这是接口的继承而非class的继承,但是虽然这么说,实际上接口的继承也跟class的继承类似,我们新建一个接口叫RadioWithBattery。它继承radio

typescript类和接口
这样子就将下面的双接口替换成单接口就可以了。
typescript类和接口
现在我想大家应该能明白一些interface的精髓了,它就想是某种契约来约定class’的样子,只要我们走路像鸭子,叫起来像鸭子我就不管它是什么东西,都叫做鸭子我们可以通过interface来约束一些毫不相关的东西。
今天的分享就到这里了,如果有什么疑问可以在评论区留言,我会在看到的第一时间进行回复的。

版权:本文由Datehoer原创,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接本文链接:https://zjzdmc.top/jsfx/126.html。

文章推荐

热门标签

返回顶部
下面为相关推荐
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!