useExponentiationOperator
Diagnostic Category: lint/style/useExponentiationOperator
Since: v1.0.0
Sources:
- Same as:
prefer-exponentiation-operator
Description
Section titled DescriptionDisallow the use of Math.pow
in favor of the **
operator.
Introduced in ES2016, the infix exponentiation operator **
is an alternative for the standard Math.pow
function.
Infix notation is considered to be more readable and thus more preferable than the function notation.
Examples
Section titled ExamplesInvalid
Section titled Invalidconst foo = Math.pow(2, 8);
code-block.js:1:13 lint/style/useExponentiationOperator FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Use the ’**’ operator instead of ‘Math.pow’.
> 1 │ const foo = Math.pow(2, 8);
│ ^^^^^^^^^^^^^^
2 │
ℹ Unsafe fix: Use the ’**’ operator instead of ‘Math.pow’.
1 │ - const·foo·=·Math.pow(2,·8);
1 │ + const·foo·=·2·**·8;
2 2 │
const bar = Math.pow(a, b);
code-block.js:1:13 lint/style/useExponentiationOperator FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Use the ’**’ operator instead of ‘Math.pow’.
> 1 │ const bar = Math.pow(a, b);
│ ^^^^^^^^^^^^^^
2 │
ℹ Unsafe fix: Use the ’**’ operator instead of ‘Math.pow’.
1 │ - const·bar·=·Math.pow(a,·b);
1 │ + const·bar·=·a·**·b;
2 2 │
let baz = Math.pow(a + b, c + d);
code-block.js:1:11 lint/style/useExponentiationOperator FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Use the ’**’ operator instead of ‘Math.pow’.
> 1 │ let baz = Math.pow(a + b, c + d);
│ ^^^^^^^^^^^^^^^^^^^^^^
2 │
ℹ Unsafe fix: Use the ’**’ operator instead of ‘Math.pow’.
1 │ - let·baz·=·Math.pow(a·+·b,·c·+·d);
1 │ + let·baz·=·(a·+·b)·**·(c·+·d);
2 2 │
let quux = Math.pow(-1, n);
code-block.js:1:12 lint/style/useExponentiationOperator FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Use the ’**’ operator instead of ‘Math.pow’.
> 1 │ let quux = Math.pow(-1, n);
│ ^^^^^^^^^^^^^^^
2 │
ℹ Unsafe fix: Use the ’**’ operator instead of ‘Math.pow’.
1 │ - let·quux·=·Math.pow(-1,·n);
1 │ + let·quux·=·(-1)·**·n;
2 2 │
Valid
Section titled Validconst foo = 2 ** 8;
const bar = a ** b;
let baz = (a + b) ** (c + d);
let quux = (-1) ** n;
How to configure
Section titled How to configure{ "linter": { "rules": { "style": { "useExponentiationOperator": "error" } } }}