useConst
Summary
Section titled “Summary”- Rule available since:
v1.0.0
- Diagnostic Category:
lint/style/useConst
- This rule is recommended, which means is enabled by default.
- This rule has a safe fix.
- The default severity of this rule is warning.
- Sources:
- Same as
prefer-const
- Same as
Description
Section titled “Description”Require const
declarations for variables that are only assigned once.
Variables that are initialized and never reassigned and
variables that are only assigned once can be declared as const
.
Examples
Section titled “Examples”Invalid
Section titled “Invalid”let a = 3;console.log(a);
code-block.js:1:1 lint/style/useConst FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠ This let declares a variable that is only assigned once.
> 1 │ let a = 3;
│ ^^^
2 │ console.log(a);
3 │
ℹ ‘a’ is never reassigned.
> 1 │ let a = 3;
│ ^
2 │ console.log(a);
3 │
ℹ Safe fix: Use const instead.
1 │ - let·a·=·3;
1 │ + const·a·=·3;
2 2 │ console.log(a);
3 3 │
// `a` is redefined (not reassigned) on each loop step.for (let a of [1, 2, 3]) { console.log(a);}
code-block.js:2:6 lint/style/useConst FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠ This let declares a variable that is only assigned once.
1 │ // a
is redefined (not reassigned) on each loop step.
> 2 │ for (let a of [1, 2, 3]) {
│ ^^^
3 │ console.log(a);
4 │ }
ℹ ‘a’ is never reassigned.
1 │ // a
is redefined (not reassigned) on each loop step.
> 2 │ for (let a of [1, 2, 3]) {
│ ^
3 │ console.log(a);
4 │ }
ℹ Safe fix: Use const instead.
1 1 │ // a
is redefined (not reassigned) on each loop step.
2 │ - for·(let·a·of·[1,·2,·3])·{
2 │ + for·(const·a·of·[1,·2,·3])·{
3 3 │ console.log(a);
4 4 │ }
// `a` is redefined (not reassigned) on each loop step.for (let a in [1, 2, 3]) { console.log(a);}
code-block.js:2:6 lint/style/useConst FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠ This let declares a variable that is only assigned once.
1 │ // a
is redefined (not reassigned) on each loop step.
> 2 │ for (let a in [1, 2, 3]) {
│ ^^^
3 │ console.log(a);
4 │ }
ℹ ‘a’ is never reassigned.
1 │ // a
is redefined (not reassigned) on each loop step.
> 2 │ for (let a in [1, 2, 3]) {
│ ^
3 │ console.log(a);
4 │ }
ℹ Safe fix: Use const instead.
1 1 │ // a
is redefined (not reassigned) on each loop step.
2 │ - for·(let·a·in·[1,·2,·3])·{
2 │ + for·(const·a·in·[1,·2,·3])·{
3 3 │ console.log(a);
4 4 │ }
let a;a = 0;
code-block.js:1:1 lint/style/useConst ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠ This let declares a variable that is only assigned once.
> 1 │ let a;
│ ^^^
2 │ a = 0;
3 │
ℹ ‘a’ is only assigned here.
1 │ let a;
> 2 │ a = 0;
│ ^
3 │
let a = 3;{ let a = 4; a = 2;}
code-block.js:1:1 lint/style/useConst FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠ This let declares a variable that is only assigned once.
> 1 │ let a = 3;
│ ^^^
2 │ {
3 │ let a = 4;
ℹ ‘a’ is never reassigned.
> 1 │ let a = 3;
│ ^
2 │ {
3 │ let a = 4;
ℹ Safe fix: Use const instead.
1 │ - let·a·=·3;
1 │ + const·a·=·3;
2 2 │ {
3 3 │ let a = 4;
let a = 2;a = 3;console.log(a);
let a = 1, b = 2;b = 3;
let a;a; // the variable is read before its assignmenta = 0;
How to configure
Section titled “How to configure”{ "linter": { "rules": { "style": { "useConst": "error" } } }}