space-infix-ops
While formatting preferences are very personal, a number of style guides require spaces around operators, such as:
var sum = 1 + 2;Proponents of this rule believe that it makes code easier to read and can more easily highlight potential errors, such as:
var sum = i+++2;While this is valid JavaScript syntax, it is hard to determine what the author intended.
Rule Details
This rule is aimed at ensuring there are spaces around infix operators.
Options
This rule accepts a single options argument with the following defaults:
"space-infix-ops": ["error", { "int32Hint": false, "ignoreOperators": [], "ignoreTypes": false }]int32Hint
Set the int32Hint option to true (default is false) to allow write a|0 without space.
var foo = bar|0; // `foo` is forced to be signed 32 bit integerExamples of incorrect code for this rule:
/* eslint @stylistic/space-infix-ops: "error" */
a+b
a+ b
a +b
a?b:c
const a={b:1};
var {b=0}=bar;
function foo(a=0) { }
type Foo<T=true> = TExamples of correct code for this rule:
/* eslint @stylistic/space-infix-ops: "error" */
a + b
a + b
a ? b : c
const a = {b:1};
var {b = 0} = bar;
function foo(a = 0) { }
type Foo<T = true> = TignoreOperators
Set the ignoreOperators option to a list of operators that should not require surrounding spaces. Operators are matched by their exact text, so ignoring + does not ignore +=.
"space-infix-ops": ["error", { "ignoreOperators": ["*", "/", "^"] }]With this configuration, a^b + c*d + e/f is valid while + is still checked.
ignoreTypes
Set the ignoreTypes option to true (default is false) to allow write string|number without space.
var foo: string|number = bar;When Not To Use It
You can turn this rule off if you are not concerned with the consistency of spacing around infix operators.