IT学习站-137zw.com

作者: 123456790
查看: 225|回复: 0

more +资源更新Forums

more +随机图赏Gallery

2019开运网付费开源商业版|风水起名八字算命易经周易源码...2019开运网付费开源商业版|风水起名八字算命易经周易源码...
网易课堂马丁的Illustrator(Adobe AI)大师课,90节完整版网易课堂马丁的Illustrator(Adobe AI)大师课,90节完整版
价值9999元 筑龙造价全专业(20191214_114251)精品课程推荐价值9999元 筑龙造价全专业(20191214_114251)精品课程推荐
微专业 - Java高级开发工程师(完整版)微专业 - Java高级开发工程师(完整版)
曾奇峰的心理课精神分析30讲,带你深入潜意识,解密你不...曾奇峰的心理课精神分析30讲,带你深入潜意识,解密你不...
词霸天下之3万词汇速记进阶 入门到精通彻底攻克英语完整版词霸天下之3万词汇速记进阶 入门到精通彻底攻克英语完整版

深入浅出TypeScript(4)- 使用接口和类型别名

深入浅出TypeScript(4)- 使用接口和类型别名

[复制链接]
123456790 | 显示全部楼层 发表于: 2019-11-14 09:10:01
123456790 发表于: 2019-11-14 09:10:01 | 显示全部楼层 |阅读模式
查看: 225|回复: 0

你还没有注册,无法下载本站所有资源,请立即注册!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在TypeScript中,为了可以约束对象定义,提供了两个新的特性,接口和类型别名。
TypeScript中的接口

在强类型语言中,都有接口的概念,那么TypeScript中的接口是如何使用的呢?
接口定义形式如下:  
上述接口,定义了一个test接口,该接口可以约束两个字段的数据类型,分别是name和value。而接口的使用主要有三个方面:实现、继承和约束。
实现接口

通过用类来实现接口,就实现了接口约束类中必须定义的字段,实现接口的关键字是implements,接下来,我们定义一个类来实现上述接口:  
如果类中缺少了属性name和value,就会报错,我们就可以用test接口来约束实现接口类中的属性。
继承接口

接口之间,还可以进行继承,用来使得该接口拥有被继承接口的属性和方法。比如有如下两个接口:  
在上面我们定义了两个接口,分别表示颜色和线条的宽度,如果我们想要定义一条直线的类别,那么我们可以定义如下接口继承:  
此时此刻,接口StrightLineInterface便拥有了color和width属性,TypeScript中类只能实现一个接口,但是接口可以通过继承实现多态。
接口约束

除了被实现和继承,接口还可以用来约束对象或者函数类型。
比如我们后台获取的数据需要遵循特定类型,我们才能使用,我们就可以用接口来约束我们获取的数据类型。
比如,我们获取的数据是一个包含id,name的对象数据,那么我们可以定义如下接口:  
我们在使用result的时候,就可以用Result接口来约束它的格式:  
接口还可以约束可变参数的对象,可变参数就是我们不知道对象中有多少个属性,但是我们知道属性的类别,可以用如下方式约束:  
该接口表示我们接受约束的对象必须是数字下标,而值必须是string类型的value对象。
除此之外,接口还可以约束函数:  
接口约束Props和State
接口还可以约束React中的Props和State的类型,如下所示:  
类型别名

上面提到的接口可以做的一些事情,而类型别名,主要就是对对象或者函数起到约束作用,特性没有接口多。  
而类型别名是早起TypeScript做类型约束的主要形式,后来引入接口之后,TypeScript推荐我们尽可能的使用接口来规范我们的代码。
而两者也都是TSC编译器做类型判定的时候有作用,我们可以在playground里面看到,当我们写一个接口或者是一个类型别名定义一个对象或者方法的时候,并未有任何编译成的es5代码出现。
总结

这一小节主要讲述了类型别名和接口的用法,以及两者的区别。
TypeScript中,如果再相同功能点的顶一下,推荐使用interface去定义数据类型。
我的博客地址:http://www.gaoyunjiao.fun/?p=138

来源:http://www.137zw.com
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
137zw.com IT学习站致力于免费提供精品的java技术教程和python技术教程,CCNA书籍/资料/CCNP书籍/资料教程/CCIE书籍/资料/H3C学习/认证/一级建造师考试/微软学习/认证/包括基础教程和高级实战教程,同时也提供分享网站源码下载和互联网相关一系列的技术教程,我们想做的就是让知识分享更有价值!(IT学习站官方唯一域名地址:www.137zw.com 请谨防假冒网站!)本站所有资源全部收集于互联网或网友自行分享,分享目的仅供大家学习与参考,如无意中侵犯您的合法权益,请联系本站管理员进行删除处理!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

浙ICP备19022368号-1|Archiver|手机版|IT学习站-137zw.com

GMT+8, 2020-7-4 18:23 , Processed in 0.221681 second(s), 32 queries .

快速回复 返回顶部 返回列表