SyntaxError: missing : after property id
JavaScript の例外 "missing : after property id" は、オブジェクトがオブジェクト初期化子の構文を使用して生成されたときに発生します。コロン (:) はオブジェクトのプロパティのキーと値を区切ります。おそらく、このコロンがないか場所が間違っているかです。
エラーメッセージ
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)
エラー型
SyntaxError
エラーの原因
オブジェクト初期化子構文でオブジェクトを生成する場合、オブジェクトのプロパティのキーと値をコロン (:) で区切ります。
js
const obj = { propertyKey: "value" };
例
>コロンと代入記号
この方法で代入記号をオブジェクト初期化子構文として使用できないため、このコードは失敗します。
js
const obj = { propertyKey = "value" };
// SyntaxError: missing : after property id
正しくはコロンを使用するか、オブジェクトを生成した後に角括弧を使用して新しいプロパティを割り当てます。
js
const obj = { propertyKey: "value" };
あるいは、
js
const obj = {};
obj.propertyKey = "value";
計算されたプロパティ
式からプロパティキーを生成する場合、角括弧を使用してください。そうしなければ、プロパティ名を計算することができません。
js
const obj = { "b"+"ar": "foo" };
// SyntaxError: missing : after property id
式を括弧 [] に入れてください。
js
const obj = { ["b" + "ar"]: "foo" };