# init-declarations

在变量声明中要求或不允许初始化

在 JavaScript 中,变量可以在声明期间赋值,或者在之后的任何时候使用赋值语句。例如,在下面的代码中,foo 在声明时被初始化,而 bar 在后面被初始化。

var foo = 1;
var bar;

if (foo) {
    bar = 1;
} else {
    bar = 2;
}

# 规则详情

此规则旨在在声明期间强制或消除变量初始化。例如,在下面的代码中,foo 在声明时被初始化,而 bar 没有。

var foo = 1;
var bar;

bar = 2;

该规则旨在为变量初始化和声明带来一致性。

# 选项

该规则有两个选项:

您可以按如下方式配置规则:

变量必须在声明时初始化(默认)

{
    "init-declarations": ["error", "always"],
}

变量不能在声明时初始化

{
    "init-declarations": ["error", "never"]
}

变量不得在声明时初始化,除非在允许的 for 循环中

{
    "init-declarations": ["error", "never", { "ignoreForLoopInit": true }]
}

# always

默认 "always" 选项的错误代码示例:

/*eslint init-declarations: ["error", "always"]*/
/*eslint-env es6*/

function foo() {
    var bar;
    let baz;
}

默认 "always" 选项的正确代码示例:

/*eslint init-declarations: ["error", "always"]*/
/*eslint-env es6*/

function foo() {
    var bar = 1;
    let baz = 2;
    const qux = 3;
}

# never

"never" 选项的错误代码示例:

/*eslint init-declarations: ["error", "never"]*/
/*eslint-env es6*/

function foo() {
    var bar = 1;
    let baz = 2;

    for (var i = 0; i < 1; i++) {}
}

"never" 选项的正确代码示例:

/*eslint init-declarations: ["error", "never"]*/
/*eslint-env es6*/

function foo() {
    var bar;
    let baz;
    const buzz = 1;
}

"never" 选项忽略 const 变量初始化。

# ignoreForLoopInit

"never", { "ignoreForLoopInit": true } 选项的正确代码示例:

/*eslint init-declarations: ["error", "never", { "ignoreForLoopInit": true }]*/
for (var i = 0; i < 1; i++) {}

# 何时不使用

当您对变量的初始化方式漠不关心时。

Last Updated: 5/13/2023, 8:55:38 PM