TypeScript中的联合类型

来自菜鸟教程
跳转至:导航、​搜索

在 TypeScript 中,您可以使用联合类型来描述可以属于一种以上类型的值。 因此,它允许避免使用 any。 使用 | 字符定义联合类型以分隔不同的可能类型。

例如,假设函数定义使用的参数描述的值可以是字符串或数字。 而不是这个:

function add(v1: any, v2: any) {
  let value1 = typeof v1 === "string" ? +v1 : v1;
  let value2 = typeof v2 === "string" ? +v2 : v2;

  console.log(value1 + value2);
}

add(23, "32"); // 55
add(23, true); // No error when passing non-string or number value

你可以这样做:

function add(v1: number | string, v2: number | string) {
  let value1 = typeof v1 === "string" ? +v1 : v1;
  let value2 = typeof v2 === "string" ? +v2 : v2;

  console.log(value1 + value2);
}

add(23, "32"); // 55
add(23, true); // Error when passing non-string or number value