问题标签 [optional-chaining]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
27 浏览

javascript - 是否有可用于设置属性的可选链接的建议

使用可选链接分配变量?以类似于可选链接的方式询问有关设置属性的问题,例如foo?.bar?.baz?.quux = 'quux' .

我想更具体地问一下,是否有正在实施的提案(我在https://github.com/tc39/proposals上没有看到),如果没有,这是否是由于最初的提议出于某种原因拒绝了这个想法。

0 投票
1 回答
5037 浏览

javascript - 为什么可选链在我的 Node REPL 中不起作用?

我从MDN复制粘贴的示例代码,但可选链接在我的节点(v12.13.0)REPL 中不起作用。抛出一个语法错误,指出问号后面的点无效。这是怎么回事 ?我已经在 React App 中使用过这个表达式,它似乎工作正常。

0 投票
1 回答
237 浏览

javascript - Google Apps 脚本 - 抛出 ParseError 的可选链接

为什么 google Apps Script 不支持最新的 javascript 功能,例如可选链接,即使它运行在 Chrome V8 上?使用可选链接时,clasp 会引发错误。

GaxiosError: Syntax error: ParseError: Unexpected token .

清单文件中已经提到了运行时环境appsscript.json

0 投票
1 回答
230 浏览

reactjs - 即使使用 react-script 3.4.3,CRA 可选链接也不起作用

即使使用 react-script 3.4.3,可选链接在 CRA 中也不起作用,例如

modelClass.withId(payload.modelRef.id)?.delete();

引发以下错误: Expected an assignment or function call and instead saw an expression no-unused-expressions

依赖项:

我正在使用 CRA 的 Redux 模板。有什么解决办法吗?

0 投票
2 回答
767 浏览

javascript - JavaScript 可选链 (?.) 运算符是如何工作的?

我正在研究新的 JS 可选链接?.运算符。它可以帮助我们避免出现这样的错误,

你可以写

没有错误。如果对象中undefined没有命名属性,它将返回。现在,这适用于 (.) 运算符的第一级。但如果我尝试这样的事情,bobj

这是抛出一个错误,

但如果我写,

它再次返回未定义。不应该回来Uncaught TypeError: obj.b.c is undefined吗?

这是一些实施差距还是我在这里遗漏了什么?提前致谢。

现在已经解决了。@Ifaruki 的评论有正确的解释。

更新:它称为“链接”运算符。它从左向右移动。如果它看到?如果未定义,它会检查左值。如果是,则返回未定义并停止向右移动。这意味着如果 b 已经未定义,它将不会检查右侧的值

0 投票
1 回答
194 浏览

typescript - getElementById 的类型检查仅适用于可选链接,不适用于类型检查

在尝试向折线图添加渐变时,我需要将其作为画布。在继续画布之前,我添加了一个类型检查,但是 Vetur 说“对象可能是 'null'.Vetur(2531)”

经过研究,我尝试使用可选的链接运算符进行类型检查。这种方法有效,因为没有报告错误。

我对为什么第一种方法不起作用感到困惑,因为 canv 是一个常量,因此不能改变。类型检查应该足够了。

为什么在这种情况下只有可选链接起作用?

0 投票
1 回答
1935 浏览

javascript - @babel/plugin-proposal-optional-chaining 在 Vue.js 中不起作用