在 TypeScript 中,联合类型(Union Types)允许一个变量具有多种不同的类型。使用联合类型,你可以指定一个变量可以是多种类型之一。以下是一些关于联合类型的基本用法:

1. 声明联合类型:
let myVar: string | number;

myVar = "Hello";
myVar = 123;
// myVar = true; // 错误,不能赋值布尔值

在上述例子中,myVar 可以是 string 类型或 number 类型之一。

2. 使用联合类型处理不同类型的值:
function displayType(value: string | number): void {
  if (typeof value === "string") {
    console.log("Value is a string: " + value);
  } else {
    console.log("Value is a number: " + value);
  }
}

displayType("Hello"); // 输出: Value is a string: Hello
displayType(123);     // 输出: Value is a number: 123

3. 联合类型的方法调用:
function display(value: string | number): void {
  console.log(value.toString()); // 调用 toString 方法,需要确保 value 的类型支持该方法
}

display("Hello"); // 输出: Hello
display(123);     // 输出: 123

4. 联合类型的数组:
let arr: (string | number)[] = ["Hello", 123, "TypeScript", 456];

5. 联合类型的对象:
type Dog = { kind: "dog"; bark: () => void };
type Cat = { kind: "cat"; meow: () => void };

let pet: Dog | Cat;

pet = { kind: "dog", bark: () => console.log("Woof!") };
pet.bark(); // 输出: Woof!

pet = { kind: "cat", meow: () => console.log("Meow!") };
pet.meow(); // 输出: Meow!

在上述例子中,pet 可以是 Dog 类型或 Cat 类型之一。

6. null 和 undefined 与联合类型:
let value: string | null | undefined;

value = "Hello";
value = null;
value = undefined;

这些是 TypeScript 中关于联合类型的一些基本用法。联合类型是 TypeScript 强大的类型系统的一部分,它允许更灵活地处理具有多种可能类型的变量。


转载请注明出处:http://www.zyzy.cn/article/detail/13020/TypeScript