SyntaxError: missing : after property id

Die JavaScript-Ausnahme "missing : after property id" tritt auf, wenn Objekte mit der Objektinitialisierer-Syntax erstellt werden. Ein Doppelpunkt (:) trennt Schlüssel und Werte für die Eigenschaften des Objekts. Irgendwie fehlt dieser Doppelpunkt oder er ist fehl am Platz.

Meldung

SyntaxError: Invalid shorthand property initializer (V8-based)
SyntaxError: missing : after property id (Firefox)
SyntaxError: Unexpected token '='. Expected a ':' following the property name 'x'. (Safari)
SyntaxError: Unexpected token '+'. Expected an identifier as property name. (Safari)

Fehler-Typ

Was ist schiefgelaufen?

Beim Erstellen von Objekten mit der Objektinitialisierer-Syntax trennt ein Doppelpunkt (:) die Schlüssel und Werte für die Eigenschaften des Objekts.

js
const obj = { propertyKey: "value" };

Beispiele

Doppelpunkte vs. Gleichheitszeichen

Dieser Code schlägt fehl, da das Gleichheitszeichen in dieser Objektinitialisierer-Syntax nicht auf diese Weise verwendet werden kann.

js
const obj = { propertyKey = "value" };
// SyntaxError: missing : after property id

Korrekt wäre es, einen Doppelpunkt zu verwenden oder eckige Klammern zu nutzen, um eine neue Eigenschaft zuzuweisen, nachdem das Objekt bereits erstellt wurde.

js
const obj = { propertyKey: "value" };

Oder alternativ:

js
const obj = {};
obj.propertyKey = "value";

Berechnete Eigenschaften

Wenn Sie einen Eigenschaftsschlüssel aus einem Ausdruck erstellen, müssen Sie eckige Klammern verwenden. Andernfalls kann der Eigenschaftsname nicht berechnet werden:

js
const obj = { "b"+"ar": "foo" };
// SyntaxError: missing : after property id

Setzen Sie den Ausdruck in eckige Klammern []:

js
const obj = { ["b" + "ar"]: "foo" };

Siehe auch