Typescript联合类型
联合类型表示取值可以为多种类型中的一种
例子
let myFavoriteNumber: string | number;
myFavoriteNumber = "seven";
myFavoriteNumber = 7;
联合类型使用
|
分隔每个类型注意:
let myFavoriteNumber: string | number;
这里的
myFavoriteNumber
后面的类型只能写string
或者number
,但是不能是其它类型
访问联合类型的属性或方法
当Typescript不确定一个联合类型的变量到底是哪个类型的适合,我们只能访问此联合类型的所有类型里共有的属性或方法
上例中,
length
不是string
和number
的共有属性,所以会报错。
像上面这样,我们使用
string
和number
共有的属性,就不会报错了
联合类型的变量在被赋值的时候,会根据类型推论的规则推断出一个类型:
上面代码中,
myFavorite
首先呗类型推断为一个string,它有length属性,但在第二次赋值的时候,被推断为一个number类型,number类型不存再length属性