Skip to content
← Back to rules

eslint/no-iterator 正确性

This rule is turned on by default.
An auto-fix is available for this rule.

它做了什么

禁止使用 __iterator__ 属性。

为什么这是个问题?

__iterator__ 属性是 SpiderMonkey 对 JavaScript 的一个扩展,可用于创建与 JavaScript 的 for infor each 语句兼容的自定义迭代器。然而,该属性现已过时,不应再使用。以下是其过去的工作方式示例:

js
Foo.prototype.__iterator__ = function () {
  return new FooIterator(this);
};

示例

此规则的错误代码示例:

javascript
Foo.prototype.__iterator__ = function () {
  return new FooIterator(this);
};

foo.__iterator__ = function () {};

foo["__iterator__"] = function () {};

此规则的正确代码示例:

js
const __iterator__ = 42; // 未使用 __iterator__ 属性

Foo.prototype[Symbol.iterator] = function () {
  return new FooIterator(this);
};

如何使用

通过配置文件或 CLI 启用此规则,可以使用:

json
{
  "rules": {
    "no-iterator": "error"
  }
}
bash
oxlint --deny no-iterator

参考资料