SyntaxError: private fields can't be deleted

Der JavaScript-Fehler "SyntaxError: private fields can't be deleted" tritt auf, wenn delete auf ein privates Element einer Klasse oder eines Objekts angewendet wird.

Meldung

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

Fehlertyp

Was ist schiefgelaufen?

Es gibt Code, der versucht, ein privates Element (Feld oder Methode) eines Objekts oder einer Klasse zu delete. Dies ist in JavaScript verboten – private Elemente können nicht spontan hinzugefügt oder entfernt werden.

Beispiele

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

Siehe auch