Typescript联合类型

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

例子

let myFavoriteNumber: string | number;
myFavoriteNumber = "seven";
myFavoriteNumber = 7;

联合类型使用 | 分隔每个类型

注意:let myFavoriteNumber: string | number;

这里的myFavoriteNumber后面的类型只能写string或者number,但是不能是其它类型

访问联合类型的属性或方法

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

image-20230207235707139

上例中,length 不是 stringnumber 的共有属性,所以会报错。

image-20230207235750601

像上面这样,我们使用stringnumber共有的属性,就不会报错了

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

image-20230208000044645

上面代码中,myFavorite首先呗类型推断为一个string,它有length属性,但在第二次赋值的时候,被推断为一个number类型,number类型不存再length属性