NO2 Typescript 中的数据类型

66 阅读2分钟
/**

 * typescript 为了使编写的代码更规范,更利于维护,增加了类型校验,主要提供的数据类型有:

 * 布尔类型

 * 数字类型

 * 字符串类型

 * 数组

 * 元组

 * 枚举

 * 任意

 * null 和 undefined

 * void

 * never

*/


// 布尔类型(boolean) true false

    var flag:boolean = true

    flag = false

// 数字类型(number)

    var a:number = 123

// 字符串类型(string)

    let str:string = 'this is ts'

// 数组类型

    // 第一种定义数组的方式

    let arr:number[] = [1,2,3,4]

    let ary:string[] = ["a","b","c"]

    // 第二种定义数组的方式

    let arr1:Array<number> = [1,2,3,4]

    let ary2:Array<string> = ["a","b","c"]

    // 第三种定义数组的方式

    var arr3:any[] = ['12',12,false]


// 元组类型(tuple) 属于数组的一种,可以定义数组中每个元素的类型

    let arr4:[string,number,boolean] = ['a'1true]

/**

 * 枚举类型(enum)

 * 随着计算机的不断普及,程序不仅只用于数值计算,还更广泛地用于处理非数值的程序。

 * 例如: 性别,月份,星期几,颜色等,都不是数值数据。

 * 在其他程序设计语言中,一般用一个数值代表某一个状态,这种处理方法不直观,易读性差。

 * 如果能在程序中用相应的单词代表某一个状态,则程序就很容易阅读和理解。

 * 这种方法称为枚举方法,用这种方法定义的类型称枚举类型。

 *      enum 枚举名{

 *          标识符[=整型常数],

 *          标识符[=整型常数],

 *          ...

 *          标识符[=整型常数],

 *      }

 *      

 *      pay_status 0未支付 1支付 2交易成功

 *      flag       1success  -1error

*/

    enum Flag {success = 1, error = -1}

    var f:Flag = Flag.success

    console.log(f)


    enum Color {red, blue, orange}

    var c:Color = Color.blue

    console.log(c) // 1(默认为索引值)


    enum Color2 {red, blue = 5, orange}

    var c2:Color2 = Color2.orange

    console.log(c2) // 6(默认以上一个为基准)



// 任意类型(any)

    var num:any = 123

    var oBox:any = document.getElementById('box')

    oBox.style.color='red'


// null和undefined 其他(never)数据类型的子类型

    // var num2:number;

    // console.log(num2) // 报错 ,undefined


    var num3:undefined;

    console.log(num3) // 正确 ,undefined


    var num4:number | undefined;

    console.log(num4) // 正确 ,undefined(定义未赋值)


    var num5:null;

    num = null


    // 一个元素可能是number、null、undefined

    var num6:number | null | undefined;

    num6 = 123



// void 表示没有任何类型,一般用于定义方法的时候没有返回值

    function run():void {

        console.log('run')

    }

    run()

    function run2():number {

        return 123

    }

    run2()


// never 类型:其他类型(包括null和undefined)的子类型,代表从不会出现的值

    var nev:never;

    nev=(() => {

        throw new Error('error')

    })()