typeScript接口interface
2020-07-05 本文已影响0人
泛酸的桂花酒
什么是接口
接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法。
TypeScript 的核心原则之一是对值所具有的结构进行类型检查。
typescript interface的使用
typescript interface 可以包含只读属性,可选属性,函数类型
user.say = function(words: string) {
return 'hello world'
}
interface User {
name: string
age?: number //可选属性
readonly isMale: boolean //只读属性
say: (words: string) => string //函数类型
}
可索引类型
假设小甲的信息如下:
{
name: 'xiaojia',
age: 22,
isMale: false,
say: Function,
msg: {
NetEase: 'xioajia@163.com',
qq: '1022994235@qq.com',
}
}
小乙的信息如下:
{
name: '小乙',
age: 15,
isMale: true,
say: Function,
msg: {
NetEase: 'xiaoming@163.com',
qq: '1022994235@qq.com',
sina: '1022994235@sina.com',
}
}
这两个人的信息,他们的 phone 属性有共同之处,首先他们的 key 都是 string 类型的,其次 value 也是 string 类型,虽然数量不等。
这个时候我们可以用可索引类型表示,可索引类型具有一个索引签名,它描述了对象索引的类型,还有相应的索引返回值类型。
interface Phone {
[name: string]: string
}
interface User {
name: string
age?: number
readonly isMale: boolean
say: () => string
phone: Phone
}
接口继承
如下图vipuser继承了user,supperuser,接口是可以继承多个 的。
interface VIPUser extends User, SupperUser {
broadcast: () => void
}