SyntaxError: Unexpected '#' used outside of class body

当在意外的上下文中遇到哈希(“#”)时,就会出现 JavaScript 异常“在类主体外部使用意外的 '#'”,最显著的是在类声明之外。哈希在文件开头作为哈希邦注释或在类内部作为私有字段的一部分是有效的。如果您忘记在尝试访问 DOM 标识符时使用引号,也可能会遇到此错误。

消息

SyntaxError: Unexpected '#' used outside of class body.

错误类型

哪里出错了?

我们在某个意外的地方遇到了 #。这可能是由于代码移动并不再是类的一部分、在文件的第一行以外的行上找到的哈希邦注释或意外忘记了 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;
  }
}

另请参阅