联合类型表示取值可以为多种类型中的一种。
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属性