版本

array-bracket-spacing

強制陣列括號內的間距保持一致

🔧 可修復

此規則回報的部分問題可透過 --fix 命令列選項自動修復

此規則已在 ESLint v8.53.0 中棄用。請使用 @stylistic/eslint-plugin-js 中對應的 規則

許多風格指南要求或禁止陣列括號和其他符號之間有空格。此規則適用於陣列字面值和解構賦值(ECMAScript 6)。

var arr = [ 'foo', 'bar' ];
var [ x, y ] = z;

var arr = ['foo', 'bar'];
var [x,y] = z;

規則詳情

此規則強制陣列括號內的間距保持一致。

選項

此規則有一個字串選項

  • "never" (預設) 禁止陣列括號內有空格
  • "always" 要求陣列括號內有一個或多個空格或換行符號

此規則有一個物件選項,用於例外情況,當選項設定為 "never"

  • "singleValue": true 要求包含單一元素的陣列字面值的括號內有一個或多個空格或換行符號
  • "objectsInArrays": true 要求陣列字面值的括號和其物件字面值元素的括號之間有一個或多個空格或換行符號 [ {} ]
  • "arraysInArrays": true 要求陣列字面值的括號和其陣列字面值元素的括號之間有一個或多個空格或換行符號 [ [] ]

此規則有一個物件選項,用於例外情況,當選項設定為 "always"

  • "singleValue": false 禁止包含單一元素的陣列字面值的括號內有空格
  • "objectsInArrays": false 禁止陣列字面值的括號和其物件字面值元素的括號之間有空格 [{}]
  • "arraysInArrays": false 禁止陣列字面值的括號和其陣列字面值元素的括號之間有空格 [[]]

此規則有內建例外

  • "never"(以及 "always" 選項的例外情況)允許陣列括號內有換行符號,因為這是一種常見模式
  • "always" 不要求空的陣列字面值 [] 中有空格或換行符號

從不

以下是使用預設 "never" 選項時,此規則的不正確程式碼範例

在遊樂場中開啟
/*eslint array-bracket-spacing: ["error", "never"]*/

var arr = [ 'foo', 'bar' ];
var arr = ['foo', 'bar' ];
var arr = [ ['foo'], 'bar'];
var arr = [[ 'foo' ], 'bar'];
var arr = [ 'foo',
  'bar'
];
var [ x, y ] = z;
var [ x,y ] = z;
var [ x, ...y ] = z;
var [ ,,x, ] = z;

以下是使用預設 "never" 選項時,此規則的正確程式碼範例

在遊樂場中開啟
/*eslint array-bracket-spacing: ["error", "never"]*/

var arr = [];
var arr = ['foo', 'bar', 'baz'];
var arr = [['foo'], 'bar', 'baz'];
var arr = [
  'foo',
  'bar',
  'baz'
];
var arr = ['foo',
  'bar'
];
var arr = [
  'foo',
  'bar'];

var [x, y] = z;
var [x,y] = z;
var [x, ...y] = z;
var [,,x,] = z;

總是

以下是使用 "always" 選項時,此規則的不正確程式碼範例

在遊樂場中開啟
/*eslint array-bracket-spacing: ["error", "always"]*/

var arr = ['foo', 'bar'];
var arr = ['foo', 'bar' ];
var arr = [ ['foo'], 'bar' ];
var arr = ['foo',
  'bar'
];
var arr = [
  'foo',
  'bar'];

var [x, y] = z;
var [x,y] = z;
var [x, ...y] = z;
var [,,x,] = z;

以下是使用 "always" 選項時,此規則的正確程式碼範例

在遊樂場中開啟
/*eslint array-bracket-spacing: ["error", "always"]*/

var arr = [];
var arr = [ 'foo', 'bar', 'baz' ];
var arr = [ [ 'foo' ], 'bar', 'baz' ];
var arr = [ 'foo',
  'bar'
];
var arr = [
  'foo',
  'bar' ];
var arr = [
  'foo',
  'bar',
  'baz'
];

var [ x, y ] = z;
var [ x,y ] = z;
var [ x, ...y ] = z;
var [ ,,x, ] = z;

單一值

以下是使用 "always", { "singleValue": false } 選項時,此規則的不正確程式碼範例

在遊樂場中開啟
/*eslint array-bracket-spacing: ["error", "always", { "singleValue": false }]*/

var foo = [ 'foo' ];
var foo = [ 'foo'];
var foo = ['foo' ];
var foo = [ 1 ];
var foo = [ 1];
var foo = [1 ];
var foo = [ [ 1, 2 ] ];
var foo = [ { 'foo': 'bar' } ];

以下是使用 "always", { "singleValue": false } 選項時,此規則的正確程式碼範例

在遊樂場中開啟
/*eslint array-bracket-spacing: ["error", "always", { "singleValue": false }]*/

var foo = ['foo'];
var foo = [1];
var foo = [[ 1, 1 ]];
var foo = [{ 'foo': 'bar' }];

陣列中的物件

以下是使用 "always", { "objectsInArrays": false } 選項時,此規則的不正確程式碼範例

在遊樂場中開啟
/*eslint array-bracket-spacing: ["error", "always", { "objectsInArrays": false }]*/

var arr = [ { 'foo': 'bar' } ];
var arr = [ {
  'foo': 'bar'
} ]

以下是使用 "always", { "objectsInArrays": false } 選項時,此規則的正確程式碼範例

在遊樂場中開啟
/*eslint array-bracket-spacing: ["error", "always", { "objectsInArrays": false }]*/

var arr = [{ 'foo': 'bar' }];
var arr = [{
  'foo': 'bar'
}];

陣列中的陣列

以下是使用 "always", { "arraysInArrays": false } 選項時,此規則的不正確程式碼範例

在遊樂場中開啟
/*eslint array-bracket-spacing: ["error", "always", { "arraysInArrays": false }]*/

var arr = [ [ 1, 2 ], 2, 3, 4 ];
var arr = [ [ 1, 2 ], 2, [ 3, 4 ] ];

以下是使用 "always", { "arraysInArrays": false } 選項時,此規則的正確程式碼範例

在遊樂場中開啟
/*eslint array-bracket-spacing: ["error", "always", { "arraysInArrays": false }]*/

var arr = [[ 1, 2 ], 2, 3, 4 ];
var arr = [[ 1, 2 ], 2, [ 3, 4 ]];

何時不使用

如果您不關心陣列括號之間間距的一致性,您可以關閉此規則。

版本

此規則在 ESLint v0.24.0 中引入。

資源

變更語言