跳转到内容

noInvalidUseBeforeDeclaration (since v1.5.0)

此内容尚不支持你的语言。

Diagnostic Category: lint/correctness/noInvalidUseBeforeDeclaration

Sources:

Disallow the use of variables and function parameters before their declaration

JavaScript doesn’t allow the use of block-scoped variables (let, const) and function parameters before their declaration. A ReferenceError will be thrown with any attempt to access the variable or the parameter before its declaration.

The rule also reports the use of variables declared with var before their declarations.

function f() {
console.log(x);
const x;
}
correctness/noInvalidUseBeforeDeclaration.js:3:11 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Const declarations must have an initialized value.
  
    1 │ function f() {
    2 │     console.log(x);
  > 3 │     const x;
             ^
    4 │ }
    5 │ 
  
   This variable needs to be initialized.
  
function f() {
console.log(x);
var x = 0;
}
correctness/noInvalidUseBeforeDeclaration.js:2:17 lint/correctness/noInvalidUseBeforeDeclaration ━━━━━━━━━━

   This variable is used before its declaration.
  
    1 │ function f() {
  > 2 │     console.log(x);
                   ^
    3 │     var x = 0;
    4 │ }
  
   The variable is declared here:
  
    1 │ function f() {
    2 │     console.log(x);
  > 3 │     var x = 0;
           ^
    4 │ }
    5 │ 
  
function f(a = b, b = 0) {}
correctness/noInvalidUseBeforeDeclaration.js:1:16 lint/correctness/noInvalidUseBeforeDeclaration ━━━━━━━━━━

   This parameter is used before its declaration.
  
  > 1 │ function f(a = b, b = 0) {}
                  ^
    2 │ 
  
   The parameter is declared here:
  
  > 1 │ function f(a = b, b = 0) {}
                     ^
    2 │ 
  
f();
function f() {}
new C();
class C {}
// An export can reference a variable before its declaration.
export { CONSTANT };
const CONSTANT = 0;
function f() { return CONSTANT; }
const CONSTANT = 0;