简中文档

no-window-prefix

NOTE: this rule is part of the 推荐 rule set.
Enable full set in deno.json:
{
  "lint": {
    "rules": {
      "tags": ["推荐"]
    }
  }
}
Enable full set using the Deno CLI:
deno lint --rules-tags=推荐
This rule can be explictly included to or excluded from the rules present in the current tag by adding it to the include or exclude array in deno.json:
{
  "lint": {
    "rules": {
      "include": ["no-window-prefix"],
      "exclude": ["no-window-prefix"]
    }
  }
}

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

在大多数情况下,全局变量 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 规则只会对完全可以用 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` 允许使用 `window` 调用,因为它在 Workers 中不被支持
window.alert("🍣");

// `location` 也被允许
window.location.host;

你找到了你需要的东西吗?

编辑此页面
隐私政策