Skip to content

useConst (since v1.0.0)

Diagnostic Category: lint/style/useConst

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);
style/useConst.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);
}
style/useConst.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);
}
style/useConst.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;
style/useConst.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;
}
style/useConst.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;