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() {}
}