Enforce consistent spacing before and after semicolons
Some problems reported by this rule are automatically fixable by the --fix
command line option
JavaScript allows you to place unnecessary spaces before or after a semicolon.
Disallowing or enforcing space around a semicolon can improve the readability of your program.
var a = "b" ;
var c = "d";var e = "f";
This rule aims to enforce spacing around a semicolon. This rule prevents the use of spaces before a semicolon in expressions.
This rule doesn’t check spacing in the following cases:
The spacing after the semicolon if it is the first token in the line.
The spacing before the semicolon if it is after an opening parenthesis ((
or {
), or the spacing after the semicolon if it is before a closing parenthesis ()
or }
). That spacing is checked by space-in-parens
or block-spacing
.
The spacing around the semicolon in a for loop with an empty condition (for(;;)
).
The rule takes one option, an object, which has two keys before
and after
having boolean values true
or false
. If before
is true
, space is enforced before semicolons and if it’s false
, space is disallowed before semicolons. If after
is true
, space is enforced after semicolons and if it’s false
, space is disallowed after semicolons. The after
option will be only applied if a semicolon is not at the end of line.
The default is {"before": false, "after": true}
.
"semi-spacing": ["error", {"before": false, "after": true}]
{"before": false, "after": true}
This is the default option. It enforces spacing after semicolons and disallows spacing before semicolons.
Examples of incorrect code for this rule:
/*eslint semi-spacing: "error"*/
var foo ;
var foo;var bar;
throw new Error("error") ;
while (a) { break ; }
for (i = 0 ; i < 10 ; i++) {}
for (i = 0;i < 10;i++) {}
Examples of correct code for this rule:
/*eslint semi-spacing: "error"*/
var foo;
var foo; var bar;
throw new Error("error");
while (a) { break; }
for (i = 0; i < 10; i++) {}
for (;;) {}
if (true) {;}
;foo();
{"before": true, "after": false}
This option enforces spacing before semicolons and disallows spacing after semicolons.
Examples of incorrect code for this rule with the {"before": true, "after": false}
option:
/*eslint semi-spacing: ["error", { "before": true, "after": false }]*/
var foo;
var foo ; var bar;
throw new Error("error");
while (a) { break; }
for (i = 0;i < 10;i++) {}
for (i = 0; i < 10; i++) {}
Examples of correct code for this rule with the {"before": true, "after": false}
option:
/*eslint semi-spacing: ["error", { "before": true, "after": false }]*/
var foo ;
var foo ;var bar ;
throw new Error("error") ;
while (a) {break ;}
for (i = 0 ;i < 10 ;i++) {}
You can turn this rule off if you are not concerned with the consistency of spacing before or after semicolons.
This rule was introduced in ESLint v0.16.0.
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/semi-spacing