TypeScript基础知识联合类型和交叉类型
在TypeScript中,我们可以使用interface
来定义对象的类型,当我们想要定义几种类型共存的对象时,我们可以使用交叉类型
(Intersection Type),而当我们想要定义某个对象可能具有几种属性的类型时,我们可以使用联合类型
(Union Type)。
下面是一些示例代码:
// 定义交叉类型
interface A {
name: string;
}
interface B {
age: number;
}
type C = A & B;
let person: C = {
name: "Tom",
age: 25
};
// 定义联合类型
type D = A | B;
let value: D;
// 这里会报错,因为value的类型是A或B,不能确定是A还是B
// value = { name: "Tom" }; // Error
// value = { age: 25 }; // Error
// 正确使用联合类型
value = { name: "Tom" }; // OK
value = { age: 25 }; // OK
在这个例子中,C
是一个交叉类型,它结合了A
和B
的属性。D
是一个联合类型,它表示A
或B
中的任何一个。注意,当使用联合类型时,你必须赋予其一个成员类型的属性,否则会报错。
评论已关闭