【问题标题】:?. in Typescript??.在打字稿中?
【发布时间】: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


【解决方案1】:
const var1 = obj1?.innerObj1?.somePropVal;

等同于:

const var1 = obj1 && obj1.innerObj1 ? obj1.innerObj1.somePropVal : undefined;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 2022-01-09
    • 2018-03-10
    • 2017-08-20
    相关资源
    最近更新 更多