联合类型

82 阅读1分钟

联合类型表示取值可以为多种类型中的一种。

let myNumber : string | number; //muNumber可以取string和number两种类型
myNumber = 'seven';
myNumber = 7;

访问联合类型的属性或方法 当TypeScript不确定一个联合类型的变量到底是哪个类型的时候,我们只能访问此联合类型的所有类型里共有的属性和方法。

function getLength (somthing : number | string) : number {
    return somthing.length //length不是string和number的共有属性
}
function getLength (somthing : number | string) : string
    return somthing.toString() //toString()是string和number的共有属性
}

联合类型的变量在被赋值的时候,会根据类型推论的规则推断出一个类型

let myNumber : string | number;
myNumber = 'seven' //类型推断为string
console.log(myNumber.length) // 5
myNumber = 7 //类型推断为number
console.log(myNumber.length) // number类型没有length属性