在TypeScript中,联合数据类型(Union Types)允许一个变量拥有多种类型中的一种。例如,一个变量可以是字符串或数字:
let value: string | number;
当访问联合类型的属性时,TypeScript需要知道在运行时该属性确实存在,以避免编译错误。
TypeScript中的联合类型可以是基本类型(如string | number
)、对象类型、数组类型等。
当你尝试访问联合类型的某个属性时,TypeScript可能会报错,因为它不能确定该属性在所有可能的类型中都存在。
interface Square {
kind: "square";
size: number;
}
interface Rectangle {
kind: "rectangle";
width: number;
height: number;
}
type Shape = Square | Rectangle;
function getArea(shape: Shape) {
if (shape.kind === "square") {
return shape.size * shape.size;
} else {
return shape.width * shape.height;
}
}
在这个例子中,Shape
是一个联合类型,可以是Square
或Rectangle
。通过检查kind
属性,我们可以安全地访问size
或width
和height
。
if
语句或其他条件逻辑来缩小变量的类型范围。if
语句或其他条件逻辑来缩小变量的类型范围。in
操作符:检查对象是否具有某个属性。in
操作符:检查对象是否具有某个属性。TypeScript的联合数据类型提供了一种强大的方式来处理多种可能的类型。在访问这些类型的属性时,通过类型保护、类型断言或in
操作符,可以确保代码的类型安全和正确性。
领取专属 10元无门槛券
手把手带您无忧上云