
TypeScript 联合类型
Diebug联合类型
联合类型(Union Types)表示取值可以为多种类型中的一种。
简单的例子
1 | let myFavoriteNumber: string | number; |
联合类型使用 | 分隔每个类型。
这里的 let myFavoriteNumber: string | number
的含义是,允许 myFavoriteNumber 的类型是
string 或者 number,但是不能是其他类型。
访问联合类型的属性或方法
当 TypeScript 不确定一个联合类型的变量到底是哪个类型的时候,我们只能访问此联合类型的所有类型里共有的属性或方法:
1 | function getLength(something: string | number): number { |
上例中,length 不是 string 和
number 的共有属性,所以会报错。
访问 string 和 number
的共有属性是没问题的:
1 | function getString(something: string | number): string { |
联合类型的变量在被赋值的时候,会根据类型推论的规则推断出一个类型:
1 | let myFavoriteNumber: string | number; |
上例中,第二行的 myFavoriteNumber 被推断成了
string,访问它的 length 属性不会报错。
而第四行的 myFavoriteNumber 被推断成了
number,访问它的 length 属性时就报错了。
