📜  Typescript 中的管道 (|) 符号是什么意思?(1)

📅  最后修改于: 2023-12-03 15:20:43.192000             🧑  作者: Mango

Typescript 中的管道 (|) 符号是什么意思?

在 Typescript 中,管道符号( | )被用于联合类型(Union Types)中,表示取其中一个类型。

联合类型

联合类型是用来表示一个值可能的几种类型中的任何一种。这些类型之间使用管道符号( | )分隔开来。

以下是一个使用管道符号的联合类型的示例:

let myVar: string | number;

myVar = "hello";
myVar = 42;

在上面的示例中,变量 myVar 可以是字符串或者数字类型,可以被赋值为任意一个满足这两种类型之一的值。

使用联合类型

联合类型的主要用途在于:在函数参数、返回值、变量等上下文中,允许该参数、返回值、变量等可以接受多种不同的类型。

以下是一个使用联合类型的示例:

function getLength(strOrArr: string | string[]) {
  if (typeof strOrArr === "string") {
    // 参数是字符串类型
    return strOrArr.length;
  } else {
    // 参数是字符串数组类型
    return strOrArr.reduce((acc, str) => acc + str.length, 0);
  }
}

let myStr = "hello";
let myArr = ["hello", "world"];

console.log(getLength(myStr)); // 5
console.log(getLength(myArr)); // 10

在上面的示例中,函数 getLength 接受一个参数 strOrArr,该参数可以是字符串或者字符串数组类型。如果参数是字符串类型,函数将返回字符串的长度;如果参数是字符串数组类型,函数将返回字符串数组中所有字符串长度之和。

小结

在 Typescript 中,管道符号( | )用于联合类型中,表示取其中一个类型。联合类型的主要用途在于:在函数参数、返回值、变量等上下文中,允许该参数、返回值、变量等可以接受多种不同的类型。