typeScript第二章 ts中常用的操作符

2 篇文章 0 订阅

为了便于记忆和理解ts中操作符,在这里记录下常用操作符和用途。

1. 可选参数运算符(?:)

?:用来表示参数可有可无,例如:

// 在属性名后面加上一个问号,表示属性可选
const obj: {num?: number, str: string} = {str: '123'}
// 函数形参后加问号表示调用时该参数可传可不传
function func(data?: object) {
	...
}

2. 可选链运算符 (?.)

当访问一个可能不存在的对象内的属性时,会报错。
在这里插入图片描述

可以使用(?.)表示父级对象可能不存在

const num = obj.num?.a

// 枚举key访问
const num = obj['num']?.a

3. 空值合并运算符(??)

类似于js当中‘||’,可以用于短路语法,不同的是只有当??左侧的值为null或者undefined时才会将右侧的值赋给等号左侧的变量。

const obj: {
  str?: string
} = { str: '' }
const a = obj.str ?? 123

console.log(a); // 打印字符串''
/*******分割线***********/
const obj: {
  str?: string
} = {}
const a = obj.str ?? 123

console.log(a); // 打印数字123

4. 非空断言(!)

我们无法将一个类型中包含null或undefined的变量赋值给其他类型的变量,可以在赋值时在变量名后加!,排除undefined和null类型

const a:undefined | null | string | number = '123'
let y: number | string = a!

需要注意: 如果后面还需要调用a身上的方法,例如:toString(),ts不会提示,当a为undefined或null时,程序报错:Cannot read properties of undefined (reading ‘toString’)

5. 联合类型(|)

定义一个变量时,它的值可能不是只有一种类型,可以使用管道符(|)将多种类型联合。

const multipleTypes: string | number | boolean | [] | {} = '123'

6. 类型断言

当我们需要讲一个联合类型的数据赋值给一个单一类型或另一联合类型的变量,并已经确定该数据符合符合该变量的类型定义时,我们可以使用类型断言将它断言为我们需要的类型

const a: {
  s?: string | number
} = {}
// <Type>语法
const b: number = <number>a.s
// as 语法
const b: string = a as string

注意: 类型断言会影响ts的类型判断,在不可预测类型的变化时,要小心使用。

下章学习ts类型定义-type和interface

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奇诺1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值