当前位置: 首页 > Web前端 > JavaScript

[TS]接口与接口继承

时间:2023-03-26 20:28:34 JavaScript

interface接口也相当于语法规范。ts写的时候需要注意数据类型和语法规范。正好这里提供了一个接口。传值时,传值的类型和字段必须符合我们预期的类型规范。以下为代码演示语法:interface接口名称{参数名称:数据类型},例如:interfaceIPerson{username:string}//interface:是一种能力,只是一种约束。//在这里定义一个接口来定义规范interfaceIPerson{firstName:string//lastnamelastName:string//firstname}//调用该方法时,输出名字需要传一个值,传入的值必须符合toIPersonSpecificationfunctionshowName(person:IPerson){return`${person.firstName},${person.lastName}`}constperson={firstName:'Sun',lastName:'Wukong'}//这里调用的人当showName符合上面定义的接口规范时传入console.log(showName(person));//打印Sun,Wukong如果少传一个值或者传入的类型错误会编译报错,ts会给出提示,例如constperson={firstName:'Sun',//lastName:'悟空'}console.log(showName(person));//这里传入的person里面少了一个字段,编译报错接口可以继承接口Inheritance,子接口继承父接口,子接口有父接口定义的数据类型约束,比如这里定义了两个接口//interface1interfaceICart{name:string}//interface2interfaceIColor{color:string}这两个接口都写好了,有时候需要不同的数据受到约束,单个接口可能不适合或不够用,所以可以将多个接口组合起来,这就是继承。比如这里定义了A接口的名称,B接口的颜色。现在有一个数据:名字是东风,颜色是红色,价格是999,这时候可以组合多个接口。接口B继承接口A,使接口B具有接口A的数据类型约束,或者定义一个新的接口继承AB的两个接口。//定义一个接口,继承ICart和IColorinterfaceICartInfoextendsICart,IColor{price:number//也可以自己定义数据类型}这时候ICartInfo的接口实际上是对数据类型进行了约束:interfaceICartInfoextendsICart,IColor{name:stringcolor:stringprice:number}使用接口constcartInfo:ICartInfo={name:'Dongfeng',color:"red",price:999}console.log(cartInfo);//output{name:'Dongfeng',color:"Red",price:999}案例源码:https://gitee.com/wang_fan_w/ts-seminar如果觉得本文对您有帮助,请点亮星星