声明的类型并不确定,是多个类型中的一个。

    1. let a: number | string = 'a' // a可以赋值 a 也可以赋值 1
    2. let b: 'a'|'b'|'c' (字面量联合类型) // b的取值只能是a b c

    字面量类型和联合类型的区别

    type T1 = '1'|'2'|'3';
    type T2 = string|number|boolean;
    
    let t1:T1 = '1'; // 只能是1 2 3
    let t2:T2 = '1';
    let t2:T2 = 2;
    let t2:T2 = true; // 可以是以上三种类型的任意值
    
    // 对象的联合类型