返回

TypeScript入门指南 第二章:联合类型

前端

TypeScript中联合类型介绍:

1. 什么是联合类型?

联合类型是TypeScript中的一种特殊类型,它允许一个变量或者一个表达式的值可以是多种类型之一。联合类型的语法是使用竖线(|)符号将多个类型分隔开来。

2. 联合类型怎么用?

联合类型可以通过在类型注解中使用竖线(|)符号来指定。例如,我们可以定义一个变量名为unionType的变量,它可以是字符串类型或者数字类型:

let unionType: string | number;

现在,我们可以将字符串或者数字类型的值赋给unionType变量:

unionType = "Hello";
unionType = 10;

3.联合类型有什么好处?

联合类型的主要好处是它可以使我们的代码更加灵活。例如,我们可以使用联合类型来定义一个函数,该函数可以接受多种类型的值作为参数:

function add(a: string | number, b: string | number): string | number {
  if (typeof a === 'string' || typeof b === 'string') {
    return a.toString() + b.toString();
  } else {
    return a + b;
  }
}

我们可以使用这个add函数来对字符串或者数字类型的值进行加法运算:

console.log(add("Hello", "World")); // "HelloWorld"
console.log(add(10, 20)); // 30

4.联合类型和类型别名

联合类型也可以与类型别名结合使用。我们可以创建一个名为StringOrNumber的类型别名,它表示字符串类型或者数字类型:

type StringOrNumber = string | number;

然后,我们可以使用StringOrNumber类型别名来定义变量和函数:

let unionType: StringOrNumber;
unionType = "Hello";
unionType = 10;

function add(a: StringOrNumber, b: StringOrNumber): StringOrNumber {
  if (typeof a === 'string' || typeof b === 'string') {
    return a.toString() + b.toString();
  } else {
    return a + b;
  }
}

5.联合类型的局限性

联合类型也有其局限性。例如,联合类型不能用于定义数组或者对象类型。此外,联合类型不能用于定义泛型类型。

6.联合类型和交叉类型

联合类型和交叉类型都是TypeScript中的复合类型,它们都允许将多个类型组合成一个新的类型。然而,联合类型和交叉类型之间存在着一些关键的区别。

联合类型表示取值可以为多种类型中的一种,而交叉类型表示取值可以为所有类型。

联合类型的语法是使用竖线(|)符号将多个类型分隔开来,而交叉类型的语法是使用与号(&)符号将多个类型分隔开来。

联合类型可以用于定义变量、函数和类型别名,而交叉类型只能用于定义类型别名。

联合类型和交叉类型都可以在TypeScript中被广泛使用,它们可以使我们的代码更加灵活和健壮。

7.结束语

希望本篇文章能够帮助您理解TypeScript中的联合类型,以及它们的使用方法。如果您有任何其他问题,请随时留言,我将尽力解答。