首页 > 其他分享 >Typescript索引和接口继承

Typescript索引和接口继承

时间:2022-10-20 21:33:29浏览次数:89  
标签:Typescript 只读 接口 索引 签名 类型 属性


索引签名

我们既可以使用数字索引去访问数组元素,也可以使用字符串索引去访问数组对象上的属性和方法。

const course = ['math', 'English', 'Chinese']
// 访问数组中的第二个元素
const teach = course[1];
// 访问数组对象的length属性
const ll = course['length'];

字符串索引

一个接口中最多只能定义一个字符串索引签名。字符串索引签名会约束该对象类型中所有属性的类型。

可选属性和方法

一般情况下,接口中属性签名和方法签名定义的对象属性都是必选的。在给接口类型赋值时,如果未指定必选属性则会产生编译错误。如果想要属性和方法是可选的,我们可以在属性名或者方法名后添加问号。如果接口中定义了重载方法,那么所有重载方法签名必须同时为必选或者可选的。

PropertyName?: Type;
PropertyName?(ParameterList): Type

只读

在接口声明中,我们可以使用readonly修饰符来定义只读属性。这个修饰符只能在属性签名和索引签名中使用。如果接口中定义了只读的索引签名,那么接口类型中的所有属性都是只读属性。如果接口中我们既定义了只读索引签名,又定义了非只读的属性签名,那么非只读的属性签名定义的依然是非只读的。除此其他所有的属性都是只读的。

接口的继承

接口是可以继承其他的对象类型。接口中可以继承的对象类型有接口、对象类型的类型别名、类、对象类型的交叉类型。接口的继承需要使用​​extends​​关键字。一个接口可以同时继承多个接口,父接口名之间使用逗号分割。当一个接口继承了其他接口后,子接口既包含了自身定义的类型成员,也包含了父接口中的类型成员。如果子元素接口与父元素接口之间存在同名的类型成员,那么子接口中的类型成员具有更高的优先级,同时子接口与父接口中的同名类型成员必须是类型兼容的。如果两者的类型不兼容,编译时就会出现报错。如果仅是多个父接口之间存在同名的类型成员,而子接口本身没有该同名类型成员,那么父接口同名类型成员的类型必须是完全相同的。否则也会产生编译错误。如果我们想解决编译错误,可以在更高的方法中定义一个同样的方法,这样就不会出现冲突。

interface children {
age:18
}
interface children1 {
name: 'zss'
}
interface Cir extends children, children1 {
rad: number
}

标签:Typescript,只读,接口,索引,签名,类型,属性
From: https://blog.51cto.com/u_13349380/5780582

相关文章

  • Typescript类型别名
    ​类型别名类型别名声明可以为typescript中任意类型命名。​​type​​是声明类型别名的关键字。​​AliasName​​表示类型别名的名称。​​Type​​表示类型别名关联的具......
  • Typescript中的类和成员
    ​类Typescript中我们定义类需要使用​​class​​关键字,类声明能够创建一个类,其中class是关键字,PeopleName表示类的名字。一般类名的首字母应该大写。与函数声明不同的是......
  • 枚举类实现接口
    【1】定义一个接口1publicinterfaceTestInterface{2voidshow();3}【2】枚举类实现接口,并且重写show()方法publicenumSeasonimplementsTestInterfac......
  • [Typescript] 59. Medium - InorderTraversal
    Implementthetypeversionofbinarytreeinordertraversal.Forexample:consttree1={val:1,left:null,right:{val:2,left:{val:......
  • 计算机RS232接口定义DB9
    左上角为1,右下角为9 DB91DCD载波检测2RXD接收数据3TXD发送数据4DTR数据终端准备好5SGND信号地线6DSR数据准备好7RTS请求发送8CTS清除发送9RI振铃提示......
  • [Typescript] Tips: Assign local variables to default generic slots to dry up you
    YoucanDRYupyourgenericscodeMASSIVELY(andimproveperf)byassigninglocalvariablestodefaultgenericslots.Here,wemovesomecomplex'Extract'logi......
  • 接口interface
    接口interface一个完整的项目:class,interface,enum,annation+资源文件(配置文件)+jar接口语法:publicinterface接口名称{}类与类单继承关系,利用接口进行弥补单根继承......
  • 01-Jmeter-单个接口练习
    一、环境准备1、启动虚拟机->启动电商项目->获取虚拟机的IP地址  2、启动Jmeter工具二、单个注册接口->正向测试1、添加线程组2、添加HTTP请求(1)协议:http,服务器......
  • mysql数据索引,加快查询速度
    一、什么是索引?在mysql中,索引是一种特殊的数据库结构,由数据表中的一列或多列组合而成,可以用来快速查询数据表中有某一特定值的记录。通过索引,查询数据时不用读完记录的所......
  • 学习收-C#接口的作用实例解析
    一、接口的作用:我们定义一个接口:publicinterfaceIBark{voidBark();}1、 再定义一个类,继承于IBark,并且必需实现其中的Bark()方法publicclassDog:IBa......