Skip to content

useConst

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.

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 assignement
a = 0;
biome.json
{
"linter": {
"rules": {
"style": {
"useConst": "error"
}
}
}
}