版本

object-curly-spacing

強制在花括號內使用一致的間距

🔧 可修正

此規則報告的一些問題可透過 --fix 命令列選項自動修正

此規則在 ESLint v8.53.0 中已棄用。請使用 @stylistic/eslint-plugin-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 規範符的花括號內使用一致的間距。

選項

此規則有兩個選項,一個字串選項和一個物件選項。

字串選項

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

何時不該使用

如果您不關心花括號之間空格的一致性,則可以關閉此規則。

版本

此規則是在 ESLint v0.22.0 中引入的。

資源

變更語言