Пробелы перед блоками
Обеспечивает согласованное расстояние перед блоками
Некоторые проблемы, обнаруженные этим правилом, автоматически исправляются с помощью --fix команды командной строки
Это правило было устаревшим в ESLint v8.53.0. Пожалуйста, используйте соответствующее правило в @stylistic/eslint-plugin-js.
Согласованность — важная часть любого руководства по стилю. Хотя расположение открывающей фигурной скобки блоков — вопрос личных предпочтений, оно должно быть согласованным во всем проекте. Несогласованный стиль отвлекает читателя от важных частей кода.
Подробное описание правила
Это правило обеспечивает согласованность пробелов перед блоками. Оно применяется только к блокам, которые не начинаются с новой строки.
- Это правило игнорирует пробелы между
=>и блоком. Пробелы обрабатываются правиломarrow-spacing. - Это правило игнорирует пробелы между ключевым словом и блоком. Пробелы обрабатываются правилом
keyword-spacing. - Это правило игнорирует пробелы между
:случая switch и блоком. Пробелы обрабатываются правиломswitch-colon-spacing.
Параметры
Это правило принимает один аргумент. Если это "always" , то блоки должны всегда иметь по крайней мере один предшествующий пробел. Если "never" , то у всех блоков не должно быть никаких предшествующих пробелов. Если желаются разные пробелы для блоков функций, блоков ключевых слов и классов, в качестве аргумента правила можно передать необъект конфигурации для отдельной настройки случаев. Если любое значение в объекте конфигурации "off", то ни один стиль не будет навязываться для блоков данного типа.
( например, { "functions": "never", "keywords": "always", "classes": "always" } )
По умолчанию "always".
“always”
Примеры некорректного кода для этого правила с параметром «always»:
/*eslint space-before-blocks: "error"*/
if (a)
function a()
for (;;)
try {} catch(a)
class Foo
Примеры корректного кода для этого правила с параметром "always":
/*eslint space-before-blocks: "error"*/
if (a) {
b();
}
if (a) {
b();
} else{ /*no error. this is checked by `keyword-spacing` rule.*/
c();
}
class C {
static{} /*no error. this is checked by `keyword-spacing` rule.*/
}
function a() {}
for (;;) {
b();
}
try {} catch(a) {}
“never”
Примеры некорректного кода для этого правила с параметром "never":
/*eslint space-before-blocks: ["error", "never"]*/
if (a)
function a()
for (;;)
try {} catch(a)
Примеры корректного кода для этого правила с параметром "never":
/*eslint space-before-blocks: ["error", "never"]*/
if (a){
b();
}
function a(){}
for (;;){
b();
}
try{} catch(a){}
class Foo{
constructor(){}
}
Примеры некорректного кода для этого правила при конфигурации { "functions": "never", "keywords": "always", "classes": "never" }:
/*eslint space-before-blocks: ["error", { "functions": "never", "keywords": "always", "classes": "never" }]*/
function a()
try {} catch(a)
class Foo{
constructor()
}
Примеры корректного кода для этого правила при конфигурации { "functions": "never", "keywords": "always", "classes": "never" }:
/*eslint space-before-blocks: ["error", { "functions": "never", "keywords": "always", "classes": "never" }]*/
for (;;) {
// ...
}
describe(function(){
// ...
});
class Foo{
constructor(){}
}
Примеры некорректного кода для этого правила при конфигурации { "functions": "always", "keywords": "never", "classes": "never" }:
/*eslint space-before-blocks: ["error", { "functions": "always", "keywords": "never", "classes": "never" }]*/
function a()
try {} catch(a)
class Foo
Примеры корректного кода для этого правила при конфигурации { "functions": "always", "keywords": "never", "classes": "never" }:
/*eslint space-before-blocks: ["error", { "functions": "always", "keywords": "never", "classes": "never" }]*/
if (a){
b();
}
var a = function() {}
class Foo{
constructor() {}
}
Примеры некорректного кода для этого правила при конфигурации { "functions": "never", "keywords": "never", "classes": "always" }:
/*eslint space-before-blocks: ["error", { "functions": "never", "keywords": "never", "classes": "always" }]*/
class Foo
Примеры корректного кода для этого правила при конфигурации { "functions": "never", "keywords": "never", "classes": "always" }:
/*eslint space-before-blocks: ["error", { "functions": "never", "keywords": "never", "classes": "always" }]*/
class Foo {
constructor(){}
}
Когда не следует его использовать
Вы можете отключить это правило, если вас не интересует согласованность пробелов перед блоками.
Связанные правила
Версия
Это правило было добавлено в ESLint v0.9.0.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/space-before-blocks