一、数组类型:
    有两种定义类型的方法:
    方法1:let arr1:string[]
    方法2 数组泛型:let arr2: Array
    二、枚举类型:
    enum Color {
    Red, Green, Blue
    }
    枚举类型获取:
    let c:Color = Color.Green
    let idx:number = Color[1]
    枚举可以正方向查找、也可以反方向查找
    三、void类型:
    定义void和undefined 毫无意义

    注:undefined 和 null 类型是所有类型的子类型,子类型可以赋值任何父类型(开启严格模式不可赋值)
    四、never 类型
    表示那些永不存在的类型(抛出异常错误类)
    五、object类型
    object表示非原始类型,使用object为了更好表示object.create这样子的API
    Example : declare function create(o:object | null) :void
    注:一般来说在typescript中使用接口(interface)来定义对象
    六、类型断言:
    告诉typescript编译器:我知道我在干什么!
    有两种语法:
    泛型语法和as语法(as语法更优,jsx中只能是as语法)
    Example:
    let text:any = ‘this is my storyBook’
    语法 1、
    let len:number = (:text).length
    语法 2、
    let len:number = (text as string).length
    七、元祖类型:
    let x:[number, string] = [1, ‘hellow world’]
    本质就是数组,只是固定了长度和固定了数组元素的类型
    注:3.1以上的版本无法越界访问,因为长度固定了!3.1以上的版本未对长度控制