“意外的标记 。” 使用可选更改“?”时 运行 mocha 时的语法

Igo*_* K. 3 mocha.js typescript ts-node

我正在玩 TS 并在尝试为我的代码运行测试时遇到错误。我有以下一段代码:

return this._map.get(y)?.get(x)
Run Code Online (Sandbox Code Playgroud)

当我运行浏览器的代码时,一切正常。mocha但是,当我使用 运行测试时,它会引发错误:

        return this._map.get(y)?.get(x);        
                                ^

SyntaxError: Unexpected token .
Run Code Online (Sandbox Code Playgroud)

从我设法阅读的内容来看,我应该tsc为 NodeJS 环境进行不同的配置以使其正常工作,但我的印象是它更多地是关于模块解析而不是语法。是不是我需要升级到任何特定的 NodeJS 版本?我已经尝试过 Node 10 到 13,但都没有奏效。我错过了什么?

T.J*_*der 5

可选链仍然在 Node.js v13 的一个标志之后。它不再出现在最新的 Node.js (v14.9.0) 中,尽管它仍然在 v14.4.0 中,所以它在这两者之间的某个地方被标记了。

更新到最新版本,或在 v13 和 v14 的早期版本中启用它:

节点 --harmony-optional-chaining ...