一、let声明:
    1.let声明不可以提前使用,会形成暂时性死区
    2.在同一块内不可以多次申明同一变量
    二、const声明:
    作用同let声明,不过const声明的变量(常量)非引用数据类型不了改变,引用数据类型不可改变引用指针
    三、解构赋值:
    同ES6,只是需要声明类型
    Example:
    const person = {
    name: ‘rechard’
    age: 20,
    height: ‘178cm’
    }
    let { name, age, …rest }: { name: string, age: num } = person
    三点运算符解构剩余参数(可以不带类型)
    四、拓展运算符(三点运算符【…】):
    数据展开、合并只是浅拷贝,并没有改变引用指针
    五、接口:
    1.可选属性
    2.只读属性
    只能读取,不可以赋值、更改等等修改操作。但是可以使用类型断言重写
    const VS readonly 变量使用const,属性使用readonly
    typescript 内置 ReadonlyArray 泛型数组
    3.额外属性检查
    4.函数类型
    5.可索引类型
    6.类类型接口
    类类类型接口分为类的静态部分和类的实例部分
    六、类(class)
    protected(只能在子类使用,不可以在外面使用)
    public(在外面使用,在内部使用,在子类使用)
    private(只能内部使用)
    readonly(只能只读)