deno.com

禁止覆盖受限名称

注意:此规则是recommended规则集的一部分。
deno.json 中启用完整集合
{
  "lint": {
    "rules": {
      "tags": ["recommended"]
    }
  }
}
使用 Deno CLI 启用完整集合
deno lint --rules-tags=recommended
通过将其添加到deno.json中的includeexclude数组中,此规则可以显式地包含或排除在当前标签中存在的规则之外。
{
  "lint": {
    "rules": {
      "include": ["no-shadow-restricted-names"],
      "exclude": ["no-shadow-restricted-names"]
    }
  }
}

禁止遮蔽受限名称。

以下 (a) 全局对象的属性,或 (b) 标识符在 JavaScript 中是“受限”名称:

这些名称在 JavaScript 中是保留字,这意味着没有任何东西能阻止将其他值赋给它们(即遮蔽)。换句话说,您可以使用,例如,undefined作为标识符或变量名。(更多详细信息请参阅MDN

function foo() {
  const undefined = "bar";
  console.log(undefined); // output: "bar"
}

当然,这种遮蔽很可能会混淆其他开发者,因此应该避免。此 Lint 规则会检测并警告此类情况。

无效示例

const undefined = 42;

function NaN() {}

function foo(Infinity) {}

const arguments = () => {};

try {
} catch (eval) {}

有效示例

// If not assigned a value, `undefined` may be shadowed
const undefined;

const Object = 42;

function foo(a: number, b: string) {}

try {
} catch (e) {}

您找到所需内容了吗?

隐私政策