美文网首页
数据类型和变量声明

数据类型和变量声明

作者: simon_李玉兵 | 来源:发表于2021-03-01 16:16 被阅读0次

    数据类型

    布尔值

    let isDone: boolean = false;
    

    数字

    let a: number = 6;
    

    字符串

    let name: string = "simon";
    

    Null 和 Undefined

    let u: undefined = undefined; 
    let n: null = null;
    

    默认情况下null和undefined是所有类型的子类型。 就是说你可以把 null和undefined赋值给number类型的变量。

    Object

    let b:object = {name: 'simon'}
    

    数组

    TypeScript像JavaScript一样可以操作数组元素。 有两种方式可以定义数组。 第一种,可以在元素类型后面接上 [],表示由此类型元素组成的一个数组:

    let list: number[] = [1, 2, 3];
    

    第二种方式是使用数组泛型,Array<元素类型>:

    let list: Array<number> = [1, 2, 3];
    

    元组 Tuple

    元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。

    let x: [string, number];
    x = ['hello', 10]; // OK
    x = [10, 'hello']; // Error
    

    枚举

    使用枚举类型可以为一组数值赋予友好的名字

    enum Color {Red, Green, Blue}
    

    默认情况下,从0开始为元素编号。 你也可以手动的指定成员的数值。

    enum Color {Red = 1, Green = 2, Blue = 4}
    

    Any

    有时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型

    let list: any[] = [1, true, "free"];
    

    Void

    当一个函数没有返回值时,你通常会见到其返回值类型是 void:

    function warnUser(): void {
        console.log("This is my warning message");
    }
    

    never

    never类型表示的是那些永不存在的值的类型。

    // 返回never的函数必须存在无法达到的终点
    function error(message: string): never {
        throw new Error(message);
    }
    

    类型断言

    通过类型断言这种方式可以告诉编译器,“相信我,我知道自己在干什么”。类型断言有两种形式。 其一是“尖括号”语法:

    let someValue: any = "this is a string";
    let strLength: number = (<string>someValue).length;
    

    另一个为as语法:

    let someValue: any = "this is a string";
    let strLength: number = (someValue as string).length;
    

    变量声明

    抛弃var的声明方式,改用let和const

    解构

    数组解构

    let input = [1, 2];
    let [first, second] = input;
    console.log(first); // outputs 1
    console.log(second); // outputs 2
    

    对象解构

    let o = {
        a: "foo",
        b: 12,
        c: "bar"
    };
    let { a, b } = o;
    // a的值foo
    // b的值12
    

    展开

    let first = [1, 2];
    let second = [3, 4];
    let bothPlus = [0, ...first, ...second, 5]; // [0, 1, 2, 3, 4, 5]
    

    对象展开 这就意味着出现在展开对象后面的属性会覆盖前面的属性

    let defaults = { food: "spicy", price: "$$", ambiance: "noisy" };
    let search = { ...defaults, food: "rich" };  // { food: "rich", price: "$$", ambiance: "noisy" }
    

    相关文章

      网友评论

          本文标题:数据类型和变量声明

          本文链接:https://www.haomeiwen.com/subject/cbrenktx.html