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.
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.
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.
const obj = { propertyKey: "value" };
Oder alternativ:
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:
const obj = { "b"+"ar": "foo" };
// SyntaxError: missing : after property id
Setzen Sie den Ausdruck in eckige Klammern []
:
const obj = { ["b" + "ar"]: "foo" };