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;
  }
}

另见