# 扩展类型-接口

接口: inteface

> 扩展类型:类型别名、枚举、接口、类

TypeScript的接口: 用于约束类、对象、函数的契约(标准)


契约(标准)的形式:
– API文档,弱标准
– 代码约束,强标准


和类型别名一样,接口,不出现在编译结果中


1. 接口约束对象
2. 约束函数


**接口可以继承**

“`
class MyComponent extends React.components{
   …
}
“`

可以通过接口之间的继承实现多种接口的组合  

 ```
        interface A {
            T1: string
        }
        
        interface B{
            T2: number
        }
        
        interface C extends A ,B {
            T3: boolean
        }
        
        let u: C = {
            T2: 33,
            T1: 'sss',
            T3: true
        }
    ```

  使用类型别名可以实现类似的组合效果,需要通过 “` & “`,它叫做交叉类型

  ```
        type A = {
            T1: string
        }
        
        type B = {
            T2: number
        }
        
        type C = {
            T3: boolean
        } & A & B
        
        let u: C = {
            T2: 33,
            T1: 'sss',
            T3: true
        }
    ```


他们的区别:
– 子接口不能覆盖父接口的成员  
– 交叉类型会把相同=成员的类型进行交叉  

** readonly **

只读修饰符,修饰的目标是只读

只读修饰符不在编译结果中

其他内容