eslint/init-declarations 风格
它的作用
要求或禁止在变量声明中进行初始化。
为什么这是个问题?
在 JavaScript 中,变量可以在声明时进行赋值,也可以在之后的任意时间通过赋值语句进行初始化。 例如,在以下代码中,foo 在声明时被初始化,而 bar 则稍后才被初始化。
js
var foo = 1;
var bar;
if (foo) {
bar = 1;
} else {
bar = 2;
}示例
默认选项 "always" 下错误的代码示例:
js
/* init-declarations: ["error", "always"] */
function foo() {
var bar;
let baz;
}选项 "never" 下错误的代码示例:
js
/* init-declarations: ["error", "never"] */
function foo() {
var bar = 1;
let baz = 2;
for (var i = 0; i < 1; i++) {}
}默认选项 "always" 下正确的代码示例:
js
/* init-declarations: ["error", "always"] */
function foo() {
var bar = 1;
let baz = 2;
const qux = 3;
}选项 "never" 下正确的代码示例:
js
/* init-declarations: ["error", "never"] */
function foo() {
var bar;
let baz;
const buzz = 1;
}选项 "never", { "ignoreForLoopInit": true } 下正确的代码示例:
js
/* init-declarations: ["error", "never", { "ignoreForLoopInit": true }] */
for (var i = 0; i < 1; i++) {}配置
第一个选项
type: "always" | "never"
"always"
要求变量在声明时必须进行初始化。这是默认行为。
"never"
禁止在声明时进行初始化。
第二个选项
此选项是一个包含以下属性的对象:
ignoreForLoopInit
type: boolean
default: false
当设置为 true 时,允许在 for、for-in 和 for-of 循环的初始化表达式中使用未初始化的变量。 仅在模式设置为 "never" 时生效。
如何使用
要通过配置文件或 CLI 启用此规则,可以使用:
json
{
"rules": {
"init-declarations": "error"
}
}bash
oxlint --deny init-declarations