TypeScript 基础指南:联合类型(Union Type)

联合类型(Union Type)是 TypeScript 中的一个重要概念。它允许一个变量可以属于多种类型中的任意一种。 使用 | 操作符可以定义联合类型。例如:

let value: string | number;

在上面的例子中, value 变量可以是字符串类型或者数字类型。

联合类型的特点:
类型安全
联合类型可以防止在运行时出现意外的类型错误,因为编译器会检查变量的类型是否在定义的联合类型范围内。
灵活性
联合类型允许变量在多种类型之间进行转换,增加了代码的灵活性和适应性。
类型检查
当使用联合类型的变量时,TypeScript 编译器会根据上下文自动缩小类型范围(类型保护),以确保代码的类型安全。
使用示例:
function printValue(value: string | number) {
  if (typeof value === "string") {
    console.log(`String value: ${value.toUpperCase()}`);
  } else {
    console.log(`Number value: ${value.toFixed(2)}`);
  }
}

printValue("hello"); // String value: HELLO
printValue(3.14); // Number value: 3.14

在上面的例子中:

printValue 函数接受一个 string | number 类型的参数。
在函数内部,我们使用 typeof 操作符进行类型保护,根据实际的类型执行不同的逻辑。

联合类型还可以与其他高级类型如交叉类型、索引类型等结合使用,增强 TypeScript 的类型系统,提高代码的类型安全性和可维护性。 总之,联合类型是 TypeScript 中非常有用的一个特性,可以帮助开发者更好地表达和处理多种可能的类型,提升代码质量。