object-curly-spacing
在大括号内强制执行一致的间距(object-curly-spacing)
在命令行上的--fix
选项可以自动修复一些被这条规则反映的问题。
虽然格式化首选项非常个人化,但在以下情况下,一些样式指南需要或不允许在大括号之间留出空格:
// 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 };
规则细节
此规则在对象文字的大括号内执行一致的间距,解构赋值和导入/导出说明符。
选项
该规则有两个选项,一个字符串选项和一个对象选项。
字符串选项:
"never"
(默认)不允许大括号内的空格
"always"
需要大括号内的空格({}
除外)
对象选项:
"arraysInObjects": true
要求以大括号开头和/或以数组元素结尾的间距(适用于第一个选项设置为never
)
"arraysInObjects": false
不允许在以数组元素开头和/或以数组元素结尾的对象的大括号内部进行间隔(在第一个选项设置为always
时应用)
"objectsInObjects": true
要求在以对象元素开头和/或以对象元素结尾的对象的大括号内部进行间隔(在第一个选项设置为never
时应用)
"objectsInObjects": false
不允许以对象元素开始和/或以对象元素结尾的对象的大括号内的间距(适用于第一个选项设置为always
)
never
此规则的默认"never"
选项错误
代码示例:
/*eslint 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"
选项的此规则的正确
代码示例:
/*eslint 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"
选项:
/*eslint 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"
选项:
/*eslint 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 }
选项:
/*eslint object-curly-spacing: ["error", "never", { "arraysInObjects": true }]*/
var obj = {"foo": [ 1, 2 ] };
var obj = {"foo": [ "baz", "bar" ] };
此规则的附加正确
代码示例包含以下"always", { "arraysInObjects": false }
选项:
/*eslint object-curly-spacing: ["error", "always", { "arraysInObjects": false }]*/
var obj = { "foo": [ 1, 2 ]};
var obj = { "foo": [ "baz", "bar" ]};
objectsInObjects
此规则的附加正确
代码示例包含以下"never", { "objectsInObjects": true }
选项:
/*eslint object-curly-spacing: ["error", "never", { "objectsInObjects": true }]*/
var obj = {"foo": {"baz": 1, "bar": 2} };
此规则的附加正确
代码示例包含以下"always", { "objectsInObjects": false }
选项:
/*eslint object-curly-spacing: ["error", "always", { "objectsInObjects": false }]*/
var obj = { "foo": { "baz": 1, "bar": 2 }};
何时不使用它
如果您不关心大括号间距的一致性,则可以关闭此规则。
相关规则
- comma-spacing
- space-in-parens
版本
这条规则是在 ESLint 0.22.0中引入的。