typescript联合类型

typescript联合类型

联合类型(Union Types)是 TypeScript 中的一种高级类型,它允许一个变量或参数可以同时拥有多种不同的类型。用竖线 | 来分隔每个可能的类型。

联合类型的语法

type MyType = Type1 | Type2 | Type3;

上面的示例中,MyType 是一个联合类型,它可以是 Type1、Type2 或 Type3 之一。

联合类型的示例

让我们看一个简单的示例来理解联合类型的用法:

function printResult(input: number | string) {
	console.log(input);
}

printResult(10); // Output: 10
printResult("Hello"); // Output: Hello


在上述示例中,我们定义了一个函数 printResult,它接受一个参数 input,这个参数的类型是 number | string,表示它可以是数字或字符串。函数内部使用 console.log 来打印 input 参数的值。

我们可以调用 printResult 函数并传入不同类型的参数:

printResult(10); // Output: 10

printResult("Hello"); // Output: Hello

在第一次调用中,传入数字 10,因为参数类型是 number | string,所以是合法的。在第二次调用中,传入字符串 "Hello",同样也是合法的。

使用联合类型做类型保护

联合类型在很多情况下用于类型保护,可以使用 typeof、instanceof 和自定义的类型检查来处理不同类型的数据。

function printValue(input: number | string) {
  if (typeof input === "number") {
    console.log("The value is a number:", input);
  } else {
    console.log("The value is a string:", input);
  }
}

printValue(10); // Output: The value is a number: 10
printValue("Hello"); // Output: The value is a string: Hello

在上述示例中,我们根据 input 参数的类型使用 typeof 进行类型检查,然后分别输出不同类型的结果。

使用联合类型增加灵活性

联合类型可以增加函数或变量的灵活性,使其接受多种不同类型的参数或赋值。

type NumberOrString = number | string;
let x: NumberOrString;

x = 10; // Valid
x = "Hello"; // Valid


在上述示例中,我们使用联合类型 NumberOrString 来声明变量 x,然后可以将数字或字符串赋值给 x。

联合类型是 TypeScript 中强大的类型特性之一,可以使得我们的代码更加灵活和适应不同的情况。在实际编码中,根据具体需求合理使用联合类型,可以增强代码的健壮性和灵活性。

网友评论0