【发布时间】:2022-01-21 11:58:16
【问题描述】:
我已经关注这个错误很长时间了,但我无法理解它。
代码如下:
class Instance {
static {
}
}
module.exports = Instance;
这就是全部。课堂上堆满了东西,但我把它们都删了,因为它们无关紧要。无论有没有它们,它都会给出相同的错误。
错误:
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 还不够。
【问题讨论】:
-
我不确定 JS 中是否存在静态构造函数? stackoverflow.com/questions/35156270/…
-
构造函数是原型对象的属性,不能使用“静态”构造函数。
-
什么版本的节点?静态块是 16+。
-
我说的是初始化块developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…编辑:节点版本是16.7.0
-
这似乎是 ES2022 的特性。我找不到证据表明它已经在 node 中实现(尽管我可能错了)
标签: javascript node.js class static