eslint/no-inner-declarations Pedantic
作用
禁止在嵌套块中声明变量或函数。
为什么这不好?
变量声明可以出现在语句可以出现的任何地方,即使是深度嵌套在其他块内部。 由于变量提升,这通常并不理想,而且将声明移动到程序或函数体的根部可以提高清晰度。 请注意,块级绑定(let、const)不会被提升,因此它们不受此规则影响。
示例
以下是此规则的错误代码示例:
javascript
if (test) {
function doSomethingElse() {}
}以下是此规则的正确代码示例:
javascript
function doSomethingElse() {}
if (test) {
// 你的代码在这里
}配置
第 1 个选项
type: "functions" | "both"
决定要检查哪种类型的声明。
"functions"
禁止在嵌套块中声明函数。
"both"
禁止在嵌套块中声明函数和 var。
第 2 个选项
此选项是一个具有以下属性的对象:
blockScopedFunctions
type: "allow" | "disallow"
控制在严格模式下是否允许在嵌套块中声明函数(ES6+ 行为)。
"allow"
在严格模式下允许在嵌套块中声明函数(ES6+ 行为)。
"disallow"
无论是否为严格模式,都禁止在嵌套块中声明函数。
如何使用
To enable this rule using the config file or in the CLI, you can use:
json
{
"rules": {
"no-inner-declarations": "error"
}
}ts
import { defineConfig } from "oxlint";
export default defineConfig({
rules: {
"no-inner-declarations": "error",
},
});bash
oxlint --deny no-inner-declarations版本
此规则是在 v0.0.5 中添加的。
