TS的类型定义-联合类型和类型断言

        数组中既有 number 类型,又有 string 类型,这个数组的类型应该如何写?

        

let arr: (number | string)[] = [1, 'a', 3, 'b']

联合类型

概念:将多个类型合并为一个类型对变量进行注解

解释:|(竖线)在 TS 中叫做联合类型,即:由两个或多个其他类型组成的类型,表示可以是这些类型中的任意一种

注意:这是 TS 中联合类型的语法,只有一根竖线,不要与 JS 中的或(|| 或)混淆了

类型断言

有时候你会比 TS 更加明确一个值的类型,此时,可以使用类型断言(as)来指定更具体的类型

应用场景:把一个大类型 缩小 为更加具体的类型

格式:类型 as 具体类型

使用类型断言:

//const a:HTMLAnchorElement
const a = document.getElementById('link') as HTMLAnchorElement

解释:

  1. 使用 as 关键字实现类型断言
  2. 关键字 as 后面的类型是一个更加具体的类型(HTMLAnchorElement 是 HTMLElement 的子类型)
  3. 通过类型断言,aLink 的类型变得更加具体,这样就可以访问 a 标签特有的属性或方法了

拓展非空断言

对可能为 null 或 undefined 的值进行操作或访问属性时可以使用非空断言来告诉编译器,确保其不为空。

它使用一个感叹号 ! 在表达式后面进行表示。

const name: string | null = getName();
console.log(name!.toUpperCase());  // 使用非空断言告诉编译器 name 不为空

注意的是,非空断言会绕过 TypeScript 对类型的检查,因此滥用非空断言可能导致运行时错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值