no-inner-declarations
注意: 此规则是
recommended
规则集的一部分。在
deno.json
中启用完整规则集{ "lint": { "tags": ["recommended"] } }
使用 Deno CLI 启用完整规则集
deno lint --tags=recommended
禁止在嵌套块中定义变量或函数。
嵌套块中的函数声明可能导致代码可读性降低,并可能由于不同 JavaScript 运行时的兼容性问题而导致意外结果。 这不适用于在嵌套块上下文中有效的命名函数或匿名函数。
在嵌套块中使用 var
声明的变量也可能导致代码可读性降低。 因为这些变量会被提升到模块根级别,所以最好在那里声明它们以提高清晰度。 请注意,使用 let
或 const
声明的变量是块作用域的,因此此规则不适用于它们。
无效
if (someBool) {
function doSomething() {}
}
function someFunc(someVal: number): void {
if (someVal > 4) {
var a = 10;
}
}
有效
function doSomething() {}
if (someBool) {}
var a = 10;
function someFunc(someVal: number): void {
var foo = true;
if (someVal > 4) {
let b = 10;
const fn = function doSomethingElse() {};
}
}