alm*_*arc 85 javascript node.js
可选链接 ( obj?.param1?.param2) 似乎是一个很棒的功能,我真的很想看到它的实现,并最终摆脱嵌套的 ifs、任意函数以及如此简单的操作所不具备的功能。
但是有一个问题,它不起作用。我更新到 Node 12,但仍然出现错误:
var dude = res?.param?.params[0]
SyntaxError: Unexpected token '.'
Run Code Online (Sandbox Code Playgroud)
或者
var dude = res.param?.params[0]
SyntaxError: Unexpected token '.'
Run Code Online (Sandbox Code Playgroud)
问题是什么?
我是否需要更改某些语言配置或下载库以启用此功能?或者它只是还没有出来?
Bal*_*han 114
Node.js 13 及以下版本目前不支持可选链。Node.js 版本 14 和大多数浏览器都将支持它,因为它已移至 Stage 4。目前,支持它的平台很少。您可以在给定的链接中找到支持可选链接的平台列表。您可以使用--harmony标志启用可选。
Joe*_*ite 26
可选链接功能的规范于2019年12 月 22 日刚刚提升到第 4 阶段(已完成)。Node 12 在规范最终确定之前就出现了 - 就此而言,Node 13 也是如此。
根据node.green,从 Node 14 开始将支持可选链接,但仍需要该--harmony标志。(这似乎与 Node 对--harmony标志的描述相冲突- V8 的传送功能不应该需要标志 - 所以我不确定该怎么做。)不过,无论是否需要标志,我都不会预计在2020 年 4 月左右发布 Node 14 之前会看到该功能。
如果您今天想使用可选链,最好的办法是使用 TypeScript(它在 3.7 版中添加了可选链)或像Babel这样的预处理器。
小智 16
我能够使用带有 --harmony 标志的 nodejs v13.7.0。
节点 --harmony myCode.js
底拿
不明确的
不明确的
//myCode.js
const adventurer = {
name: 'Alice',
cat: {
name: 'Dinah'
}
};
const catName = adventurer.cat?.name;
console.log(catName);
// expected output: Dinah
const dogName = adventurer.dog?.name;
console.log(dogName);
//expected output: undefined
console.log(adventurer.someNonExistentMethod?.())
//expected output: undefined
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45777 次 |
| 最近记录: |