SyntaxError: private fields can't be deleted
Ngoại lệ JavaScript "SyntaxError: private fields can't be deleted" xảy ra khi delete được dùng trên một phần tử private của class hoặc object.
Thông báo lỗi
SyntaxError: Private fields can not be deleted (V8-based) SyntaxError: private fields can't be deleted (Firefox) SyntaxError: Cannot delete private field X (Safari)
Loại lỗi
SyntaxError
Nguyên nhân
Có đoạn code đang cố delete một phần tử private (field hoặc method) của object hoặc class. Điều này bị JavaScript cấm — các phần tử private không thể được thêm vào hoặc xóa đi trong lúc chạy chương trình.
Ví dụ
js
class MyClass {
#myPrivateField;
deleteIt() {
delete this.#myPrivateField; // SyntaxError: private fields can't be deleted
}
}
js
class MyClass {
#myPrivateMethod() {
}
#deleteIt() {
delete this.#myPrivateMethod; // SyntaxError: private fields can't be deleted
}
}