SyntaxError: private fields can't be deleted

The JavaScript exception "SyntaxError: private fields can't be deleted" occurs when delete is used on a private property of a class or an object.

Message

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

Error type

What went wrong?

There's code trying to delete a private property (field or method) of an object or a class. This is forbidden by Javascript—private properties cannot be added or removed on the fly.

Examples

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

See also