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

另見