0.背景
为什么会出现interface接口?
(1)对值内部的结构进行类型检查
(2)解决类继承单一性的问题(一个子类只能继承一个父类,接口可以通过implements实现一个子类继承多个父类)
1.接口组成
接口内部主要有四种属性,普通属性、可选属性、任意属性、只读属性,其中我们常见的是普通属性,如果我们定义一个common类型的接口,有些新属性的出现不在我们预料范围之内,那么我们可以定义一个【任意属性】。
1.普通属性
2.可选属性( name?: string )
3.其他任意属性 ( [key: string]: string )
4.只读属性( readonly safe: string )
interface commonObj {
name: string,
age: number,
[key: string]: any
}
注意:这里顺便讲一下,只读属性readonly相关问题
1.readonly原理:属性只设置了getter,没有设置setter
2.readonly和const区别
const是作用于变量的只读(运行时检查),const只是设置了变量值或者引用的地址值不变 readonly是指属性的只读(编译时检查)