Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

SyntaxError: getter und setter für privaten Namen #x sollten entweder beide statisch oder nicht statisch sein

Der JavaScript-Ausnahmefehler "mismatched placement" tritt auf, wenn ein privater getter und setter nicht übereinstimmen, ob sie static sind oder nicht.

Meldung

SyntaxError: Identifier '#x' has already been declared (V8-based)
SyntaxError: getter and setter for private name #x should either be both static or non-static (Firefox)
SyntaxError: Cannot declare a private non-static getter if there is a static private setter with used name. (Safari)

Fehlertyp

SyntaxError

Was ist schiefgegangen?

Private getter und setter für denselben Namen müssen entweder beide static oder beide nicht statisch sein. Diese Einschränkung besteht nicht für öffentliche Methoden.

Beispiele

Nicht übereinstimmende Platzierung

js
class Test {
  static set #foo(_) {}
  get #foo() {}
}

// SyntaxError: getter and setter for private name #foo should either be both static or non-static

Da foo privat ist, müssen die Methoden entweder beide static sein:

js
class Test {
  static set #foo(_) {}
  static get #foo() {}
}

oder nicht statisch:

js
class Test {
  set #foo(_) {}
  get #foo() {}
}

Siehe auch