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