Skip to content

useConst

诊断类别:lint/style/useConst

¥Diagnostic Category: lint/style/useConst

自从:v1.0.0

¥Since: v1.0.0

来源:

¥Sources:

要求仅分配一次的变量进行 const 声明。

¥Require const declarations for variables that are only assigned once.

已初始化且从未重新分配的变量和仅分配一次的变量可以声明为 const

¥Variables that are initialized and never reassigned and variables that are only assigned once can be declared as const.

¥Examples

¥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;

¥Valid

let a = 2;
a = 3;
console.log(a);
let a = 1, b = 2;
b = 3;
let a;
a; // the variable is read before its assignement
a = 0;

¥Related links