Eslint
规则 | Rules

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中引入的。

资源