interface接口

90 阅读1分钟

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是指属性的只读(编译时检查)