SyntaxError: Unexpected '#' used outside of class body
JavaScript 异常 "Unexpected '#' used outside of class body" 发生在哈希符("#")出现在意外上下文中时,最显著的是类声明之外。哈希符在文件开头作为哈希bang注释是有效的,或者在类内部作为私有字段的一部分是有效的。如果你在尝试访问 DOM 标识符时忘记了引号,也可能会遇到此错误。
消息
SyntaxError: Unexpected '#' used outside of class body.
错误类型
SyntaxError
哪里出错了?
我们在某个意外的地方遇到了 #。这可能是由于代码被移动而不再是类的一部分,或者哈希bang注释出现在文件第一行以外的行上,或者不小心忘记了 DOM 标识符周围的引号。
示例
缺少引号
对于每种情况,可能都存在一些小问题。例如:
js
document.querySelector(#some-element)
可以通过以下方式修复:
js
document.querySelector("#some-element");
在类之外
js
class ClassWithPrivateField {
#privateField;
constructor() {}
}
this.#privateField = 42;
这可以通过将私有字段移回类中来修复
js
class ClassWithPrivateField {
#privateField;
constructor() {
this.#privateField = 42;
}
}