SyntaxError: private fields can't be deleted

当对类或对象的私有元素使用delete时,会发生 JavaScript 异常 "SyntaxError:无法删除私有字段"。

消息

SyntaxError: Private fields can not be deleted (V8-based)
SyntaxError: private fields can't be deleted (Firefox)
SyntaxError: Cannot delete private field X (Safari)

错误类型

SyntaxError

哪里出错了?

代码尝试 delete 对象或类的私有元素(字段或方法)。JavaScript 禁止这样做——私有元素不能即时添加或删除。

示例

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

另见