静态构造函数在 NodeJS 中给出语法错误

Static constructor gives syntax error in NodeJS

我已经研究了这个错误很长时间了,我就是无法理解它。

代码如下:

class Instance {

    static {

    }

}

module.exports = Instance;

仅此而已。 class 满是东西,但我把它们都删除了,因为它们无关紧要。不管有没有它们,它都会给出同样的错误。

错误:

    static {
           ^

SyntaxError: Unexpected token '{'
    at Object.compileFunction (node:vm:352:18)
    at wrapSafe (node:internal/modules/cjs/loader:1031:15)
    at Module._compile (node:internal/modules/cjs/loader:1065:27)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:94:18)
    at Object.<anonymous> (path\to\project\index.js:1:18)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)

我过去使用过静态构造函数,在其他地方测试相同的代码似乎有效,所以我不明白这里的问题是什么。请帮助我。

解决方案:将 Node 更新到 16.13.1,现在可以使用了。 16.7.0 还不够。

Node 17.3.0 支持。这是一个 ES2022 特性。这个 https://node.green/#ES2022 是一个很好的 link 来寻找 Nodejs 中的 ES 功能兼容性。您必须下载当前版本的 Nodejs,即 17.3.0。