TypeScript基础知识(五)联合类型和交叉类型

在这里插入图片描述

联合类型(Union Types)

联合类型(Union Types)是 TypeScript 中的一种高级类型,它允许一个变量可以存储多种类型的值。具体来说,联合类型用 | 符号将多个类型进行组合。例如,string | number 表示该变量可以存储字符串或数字类型的值。

联合类型的特点是灵活多样,可以应对不同的数据类型。它允许我们在某个位置期望多个可能的类型,并根据实际情况使用不同的类型。

优点:

  • 提供了更灵活的数据类型定义,适用于不确定变量类型的情况。
  • 可以避免使用 any 类型,提高类型安全性。
  • 有效地支持方法重载和函数重载。

缺点:

  • 在使用联合类型时,我们需要进行额外的类型检查和类型保护,以确保代码的正常运行。
  • 可能增加代码复杂性,需要根据不同类型进行逻辑处理。

应用场景:

  • 当一个变量可能有多种类型时,可以使用联合类型进行定义。
  • 在不确定一个变量的具体类型时,可以使用联合类型进行类型保护。
  • 用于方法重载和函数重载,以支持不同类型的参数和返回值。

下面是一个简单的代码案例,展示了如何使用联合类型:

function printValue(value: string | number): void {
   
  console.log(value);
}

// 调用 printValue 函数
printValue("hello"); // 输出:hello
printValue(123); // 输出:123

在上述案例中,printValue 函数的参数 value 的类型是 string | number,它可以接收字符串或数字类型的值。通过使用联合类型,我们可以灵活地调用并传递不同类型的值。

需要注意的是,当我们在使用联合类型的值时,需要进行类型检查和类型保护。这可以通过类型断言、类型保护函数、typeof 和 instanceof 运算符来实现。

当涉及到联合类型时,我们必须注意如何进行类型保护,以确保安全地操作变量。以下是几个使用联合类型的代码案例,并展示了不同的类型保护方法:

案例1: 类型断言

function printValue(value: string | number): void {
   
  if (typeof value === "string") {
   
    // 使用类型断言,将 value 视为字符串类型
    console.log(value.toUpperCase());
  } else {
   
    // 使用类型断言,将 value 视为数字类型
    console.log(value.toFixed(2));
  }
}

printValue("hello"); // 输出:HELLO
printValue(3.14159); // 输出:3.14

案例2: 类型保护函数

// 定义类型保护函数,判断是否为字符串
function isString(value: 
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值