deno.com

禁止 window 前缀

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

禁止通过 window 对象使用 Web API。

在大多数情况下,全局变量 window 的作用与 globalThis 类似。例如,你可以像 window.fetch(..) 那样调用 fetch API,而不是 fetch(..)globalThis.fetch(..)。然而,在 Web Workers 中,window 不可用,但 selfglobalThis 或无前缀的调用均可正常工作。因此,为了 Web Workers 和其他上下文之间的兼容性,强烈建议不要通过 window 访问全局属性。

某些 API,包括 window.alertwindow.locationwindow.history,允许使用 window 调用,因为这些 API 在 Workers 中不受支持或具有不同的含义。换句话说,此 lint 规则仅在 window 可以完全被 selfglobalThis 或无前缀替代的情况下,才会对使用 window 的情况发出警告。

无效示例

const a = await window.fetch("https://deno.land");

const b = window.Deno.metrics();

有效示例

const a1 = await fetch("https://deno.land");
const a2 = await globalThis.fetch("https://deno.land");
const a3 = await self.fetch("https://deno.land");

const b1 = Deno.metrics();
const b2 = globalThis.Deno.metrics();
const b3 = self.Deno.metrics();

// `alert` is allowed to call with `window` because it's not supported in Workers
window.alert("🍣");

// `location` is also allowed
window.location.host;

您找到所需内容了吗?

隐私政策