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

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

let p5: string | number;
p5 = 88;
p5 = 'kate';
p5.length; // 被推断为了string,当然有length属性

// p5 = 'kate';
// p5 = 88;
// p5.length; // 被推断为了number 当然是没有length的
}

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

function(p6: number | string) {
return p6.length; // 报错
}