跳至内容

@stylistic/

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 };

规则详情

此规则强制在对象字面量、解构赋值和导入/导出说明符的花括号内使用一致的空格。

选项

此规则有两个选项,一个字符串选项和一个对象选项。

字符串选项

  • "never" (默认) 禁止在花括号内使用空格
  • "always" 要求在花括号内使用空格(除了 {}

对象选项

  • "arraysInObjects": true 要求在以数组元素开头和/或结尾的对象的花括号内使用空格(当第一个选项设置为 never 时适用)
  • "arraysInObjects": false 禁止在以数组元素开头和/或结尾的对象的花括号内使用空格(当第一个选项设置为 always 时适用)
  • "objectsInObjects": true 要求在以对象元素开头和/或结尾的对象的花括号内使用空格(当第一个选项设置为 never 时适用)
  • "objectsInObjects": false 禁止在以对象元素开头和/或结尾的对象的花括号内使用空格(当第一个选项设置为 always 时适用)

never

此规则使用默认 "never" 选项的不正确代码示例

js
/*eslint @stylistic/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';
incorrect

此规则使用默认 "never" 选项的正确代码示例

js
/*eslint @stylistic/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';
correct

always

使用 "always" 选项时,此规则的错误代码示例

js
/*eslint @stylistic/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';
incorrect

使用 "always" 选项时,此规则的正确代码示例

js
/*eslint @stylistic/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';
correct

arraysInObjects

使用 "never", { "arraysInObjects": true } 选项时,此规则的正确代码示例

js
/*eslint @stylistic/object-curly-spacing: ["error", "never", { "arraysInObjects": true }]*/

var obj = {"foo": [ 1, 2 ] };
var obj = {"foo": [ "baz", "bar" ] };
correct

使用 "always", { "arraysInObjects": false } 选项时,此规则的正确代码示例

js
/*eslint @stylistic/object-curly-spacing: ["error", "always", { "arraysInObjects": false }]*/

var obj = { "foo": [ 1, 2 ]};
var obj = { "foo": [ "baz", "bar" ]};
correct

objectsInObjects

使用 "never", { "objectsInObjects": true } 选项时,此规则的正确代码示例

js
/*eslint @stylistic/object-curly-spacing: ["error", "never", { "objectsInObjects": true }]*/

var obj = {"foo": {"baz": 1, "bar": 2} };
correct

使用 "always", { "objectsInObjects": false } 选项时,此规则的正确代码示例

js
/*eslint @stylistic/object-curly-spacing: ["error", "always", { "objectsInObjects": false }]*/

var obj = { "foo": { "baz": 1, "bar": 2 }};
correct

何时不使用它

如果您不关心花括号之间空格的一致性,可以关闭此规则。

TypeScript 特定

ts/object-curly-spacing