object-curly-spacing
フォーマットの好みは非常に個人的なものですが、多くのスタイルガイドでは、以下の状況において中括弧間のスペースを入れるか入れないかを規定しています。
js
// simple object literals
var obj = { foo: "bar" };
// nested object literals
var obj = { foo: { zoo: "bar" } };
// destructuring assignment (EcmaScript 6)
var { x, y } = y;
// import/export declarations (EcmaScript 6)
import { foo } from "bar";
export { foo };
ルールの詳細
このルールは、オブジェクトリテラル、分割代入、import/export 指定子の中括弧内のスペースの整合性を強制します。
オプション
このルールには、文字列オプションとオブジェクトオプションの 2 つのオプションがあります。
文字列オプション
"never"
(デフォルト) は、中括弧内のスペースを許可しません。"always"
は、中括弧内 ({}
を除く) にスペースが必要です。
オブジェクトオプション
"arraysInObjects": true
は、配列要素で開始および/または終了するオブジェクトの中括弧内にスペースが必要です (最初のオプションがnever
に設定されている場合に適用されます)。"arraysInObjects": false
は、配列要素で開始および/または終了するオブジェクトの中括弧内のスペースを許可しません (最初のオプションがalways
に設定されている場合に適用されます)。"objectsInObjects": true
は、オブジェクト要素で開始および/または終了するオブジェクトの中括弧内にスペースが必要です (最初のオプションがnever
に設定されている場合に適用されます)。"objectsInObjects": false
は、オブジェクト要素で開始および/または終了するオブジェクトの中括弧内のスペースを許可しません (最初のオプションがalways
に設定されている場合に適用されます)。
never
デフォルトの "never"
オプションでこのルールに違反するコードの例
js
/*eslint @stylistic/js/object-curly-spacing: ["error", "never"]*/
var obj = { 'foo': 'bar' };
var obj = {'foo': 'bar' };
var obj = { baz: {'foo': 'qux'}, bar};
var obj = {baz: { 'foo': 'qux'}, bar};
var {x } = y;
import { foo } from 'bar';
誤り
デフォルトの "never"
オプションでこのルールに準拠するコードの例
js
/*eslint @stylistic/js/object-curly-spacing: ["error", "never"]*/
var obj = {'foo': 'bar'};
var obj = {'foo': {'bar': 'baz'}, 'qux': 'quxx'};
var obj = {
'foo': 'bar'
};
var obj = {'foo': 'bar'
};
var obj = {
'foo':'bar'};
var obj = {};
var {x} = y;
import {foo} from 'bar';
正しい
always
"always"
オプションでこのルールに違反するコードの例
js
/*eslint @stylistic/js/object-curly-spacing: ["error", "always"]*/
var obj = {'foo': 'bar'};
var obj = {'foo': 'bar' };
var obj = { baz: {'foo': 'qux'}, bar};
var obj = {baz: { 'foo': 'qux' }, bar};
var obj = {'foo': 'bar'
};
var obj = {
'foo':'bar'};
var {x} = y;
import {foo } from 'bar';
誤り
"always"
オプションでこのルールに準拠するコードの例
js
/*eslint @stylistic/js/object-curly-spacing: ["error", "always"]*/
var obj = {};
var obj = { 'foo': 'bar' };
var obj = { 'foo': { 'bar': 'baz' }, 'qux': 'quxx' };
var obj = {
'foo': 'bar'
};
var { x } = y;
import { foo } from 'bar';
正しい
arraysInObjects
"never", { "arraysInObjects": true }
オプションでこのルールに追加で準拠するコードの例
js
/*eslint @stylistic/js/object-curly-spacing: ["error", "never", { "arraysInObjects": true }]*/
var obj = {"foo": [ 1, 2 ] };
var obj = {"foo": [ "baz", "bar" ] };
正しい
"always", { "arraysInObjects": false }
オプションでこのルールに追加で準拠するコードの例
js
/*eslint @stylistic/js/object-curly-spacing: ["error", "always", { "arraysInObjects": false }]*/
var obj = { "foo": [ 1, 2 ]};
var obj = { "foo": [ "baz", "bar" ]};
正しい
objectsInObjects
"never", { "objectsInObjects": true }
オプションでこのルールに追加で準拠するコードの例
js
/*eslint @stylistic/js/object-curly-spacing: ["error", "never", { "objectsInObjects": true }]*/
var obj = {"foo": {"baz": 1, "bar": 2} };
正しい
"always", { "objectsInObjects": false }
オプションでこのルールに追加で準拠するコードの例
js
/*eslint @stylistic/js/object-curly-spacing: ["error", "always", { "objectsInObjects": false }]*/
var obj = { "foo": { "baz": 1, "bar": 2 }};
正しい
使用しない場合
中括弧間のスペースの整合性にこだわらない場合は、このルールを無効にすることができます。