ArkTS里面的?. 是什么意思
ArkTS是 Ark 的 TypeScript 实现。在 TypeScript 中,?.
是一个可选链操作符。它允许你读取位于连接对象链深处的属性,而不必明确验证链中的每个引用是否有效。
使用可选链操作符,你可以尝试访问位于连接对象链深处的属性,如果引用为 null
或 undefined
,则整个表达式将评估为 undefined
,而不会抛出错误。
例如:
const user = null;
console.log(user?.name); // 输出 undefined,而不是抛出错误
在上面的例子中,如果 user
是 null
或 undefined
,那么 user?.name
将返回 undefined
,而不会抛出错误。
如果你尝试访问一个不存在的属性,例如 user?.age
,如果 user
是 null
或 undefined
,那么整个表达式将返回 undefined
,而不会抛出错误。
可选链操作符可以简化代码,避免对链中的每个引用进行显式的 null 或 undefined 检查。
?.
叫可选链,以 a?.b
为例,当 a 不存在时,不会报错。
如果是函数还可以 a?.b?.()
本文参与了思否 HarmonyOS 技术问答马拉松,欢迎正在阅读的你也加入。
3 回答3.7k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
2 回答1.8k 阅读
1 回答813 阅读✓ 已解决
1 回答1.6k 阅读
2k 阅读
1 回答1.4k 阅读
以this.xx?.getNum()为例解释:
?. 是表示this.xx?.getNum() 里的xx存在且不为空的时候继续调用xx里面的getNum(),得到最终的结果。
?. 可以理解为前面使用的变量是否存在/为空,不存在/为空||存在/为空则不调用后面的方法/变量,存在且不为空继续调用后面的方法/变量,目的是防止异常。. 是调用。