Skip to content
You are currently reading docs for v1.x. Go to the latest docs if you are using newer version.

useConst

Diagnostic Category: lint/style/useConst

Since: v1.0.0

Sources:

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"
}
}
}
}