eslint/init-declarations Style
作用
要求或禁止在变量声明中进行初始化。
为什么不好?
在 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++) {}配置
第一个选项
类型:"always" | "never"
"always"
要求变量在声明时初始化。这是默认行为。
"never"
禁止在声明时初始化。
第二个选项
此选项是一个对象,包含以下属性:
ignoreForLoopInit
类型:boolean
默认值:false
当设置为 true 时,允许在 for、for-in 和 for-of 循环的初始化表达式中使用未初始化的变量。 仅在模式设置为 "never" 时适用。
如何使用
To enable this rule using the config file or in the CLI, you can use:
json
{
"rules": {
"init-declarations": "error"
}
}ts
import { defineConfig } from "oxlint";
export default defineConfig({
rules: {
"init-declarations": "error",
},
});bash
oxlint --deny init-declarations版本
该规则在 v0.15.11 中新增。
