SyntaxError: Unexpected '#' used outside of class body

Ngoại lệ JavaScript "Unexpected '#' used outside of class body" xảy ra khi dấu thăng ("#") xuất hiện trong một ngữ cảnh không mong đợi, phổ biến nhất là ngoài phần khai báo lớp. Dấu thăng hợp lệ ở đầu tệp như bình luận hashbang, hoặc bên trong lớp như một phần của trường private. Bạn có thể gặp lỗi này nếu quên dấu ngoặc kép khi cố gắng truy cập một định danh DOM.

Thông báo

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

Loại lỗi

SyntaxError

Điều gì đã xảy ra?

Chúng ta gặp # ở nơi không mong đợi. Điều này có thể do mã đã được di chuyển và không còn là một phần của lớp, bình luận hashbang được tìm thấy trên một dòng khác ngoài dòng đầu tiên của tệp, hoặc vô tình quên dấu ngoặc kép xung quanh định danh DOM.

Ví dụ

Thiếu dấu ngoặc kép

Đối với mỗi trường hợp, có thể có điều gì đó hơi sai. Ví dụ:

js
document.querySelector(#some-element)

Điều này có thể được sửa bằng cách:

js
document.querySelector("#some-element");

Ngoài phạm vi lớp

js
class ClassWithPrivateField {
  #privateField;

  constructor() {}
}

this.#privateField = 42;

Điều này có thể được sửa bằng cách di chuyển trường private trở lại vào lớp:

js
class ClassWithPrivateField {
  #privateField;

  constructor() {
    this.#privateField = 42;
  }
}

Xem thêm