【发布时间】:2021-11-25 13:22:51
【问题描述】:
?. 是 Typescript 或 Javascript 中的有效运算符吗?
我见过如下代码:
const var1 = obj1?.innerObj1?.somePropVal;
当我在 chrome 控制台中尝试此操作时,如果 obj1 未定义,我会收到 错误。不确定这种代码是否可行。
如果我遗漏了什么,请告诉我。
【问题讨论】:
-
可选链 (?.) 在 TypeScript 和最近的 vanilla JS 中都有效。如果您使用的是最新的 chrome,上述代码应该可以在 chrome 中运行
-
"obj1 is undefined"是什么意思?未定义 obj1 时出现错误,但未定义时未出现错误。
undefined和“未定义”在 JavaScript 中是两个不同的东西。您不能使用可选链接来捕获ReferenceError。 -
你说的是三元运算符 (? : ) 吗?
-
@itiDi:OP 显然不是在谈论这个。
?.在标题、正文和代码示例中都有提及。他们不太可能打错 3 次而没有注意到。此外,如果您在示例中将?.替换为?:,那绝对没有意义。 -
@NickParsons 我能够阅读“可选链接”并理解。非常感谢您对这个词的帮助。那是关键。
标签: javascript typescript optional-chaining