如何在 Node.js 12 中使用可选链

新手上路,请多包涵

可选链接 ( obj?.param1?.param2 ) 似乎是一个很棒的功能,我真的很想看到它的实现,并最终摆脱嵌套的 ifs、任意函数以及不适合这种简单操作的东西。

但是有一个问题,它不起作用。我更新到 Node 12,但仍然出现错误:

 var dude = res?.param?.params[0]
SyntaxError: Unexpected token '.'

或者

var dude = res.param?.params[0]
SyntaxError: Unexpected token '.'

问题是什么?

我是否需要更改某些语言配置或下载库才能启用此功能?或者它还没有出来?

原文由 almarc 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.2k
2 个回答

Node.js 13 及以下版本目前不支持可选链接。 Node.js 版本 14 和大多数浏览器都将支持它,因为它已移至第 4 阶段。目前,支持它的平台很少。您可以在给定 链接 中找到支持可选链接的平台列表。您可以使用 --harmony 标志启用可选。

原文由 Balaj Khan 发布,翻译遵循 CC BY-SA 4.0 许可协议

可选链接功能的规范刚刚于 2019 年 12 月 22 日 升级到 第 4 阶段(已完成) 。 Node 12 在规范最终确定之前就已经发布了——就此而言,Node 13 也是如此。

根据 node.green ,从 Node 14 开始将支持可选链接,但仍需要 --harmony 标志。 (这似乎与 Node 对 --harmony 标志 的描述相冲突 - V8 的运输功能不应该需要该标志 - 所以我不确定该怎么做。)仍然,它是否需要一个不管是否标记,我都不希望在 2020 年 4 月 左右发布 Node 14 之前看到该功能。

如果你现在想玩可选链,最好的办法是使用 TypeScript(它 在 3.7 版中添加了可选链)或像 Babel 这样的预处理器。

原文由 Joe White 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题