typescript 问号使用(??)(?.)

问号+点(?.)

对象不为空才调用对象的属性。如果对象为空则返回undefined。

复制代码
 res.data.mstrmod?.CreateTime

如果mstrmod为空,createTime得到一个undefine

以下的如果createTime得到undefine再调用replace是会报错 ,?.只能用来取值,不能再去调函数,否则还是有出问题的时候。

复制代码
res.data.mstrmod?.CreateTime?.replace('T', ' ')

2个问号(??)

判断变量是否为空,如果变量为空,用后面的默认值初始化对象。

const v1 = null

const v2 = 2

const v3 = v1 ?? 3

const v4 = v2 ?? 4

console.log("v3 = ", v3)

console.log("v4 = ", v4)

相关推荐
Am1nnn几秒前
【Pinia】Pinia和Vuex对比
前端·javascript·vue.js
可爱小仙子5 分钟前
ios苹果系统,js 滑动屏幕、锚定无效
前端·javascript·ios
大得3697 分钟前
react菜单,动态绑定点击事件,菜单分离出去单独的js文件,Ant框架
前端·javascript·react.js
段旭涛13 分钟前
uniapp 设置手机不息屏
前端·uni-app
古夕16 分钟前
Promise A+ 规范解读
前端·javascript
古夕16 分钟前
Promise 基础概念与实践详解
前端·javascript
SameX17 分钟前
HarmonyOS Next 枚举递归定义与表达式树建模:从理论到实践
前端
SameX18 分钟前
HarmonyOS Next自定义枚举与标准库的协同:Option与Result
前端
用户58061393930019 分钟前
深度解析:解决大型 Git 仓库克隆失败的完整指南
前端
白瓷梅子汤19 分钟前
跟着官方示例学习 @tanStack-table --- Column Ordering
前端·react.js