eslint/no-iterator 正确性
它做了什么
禁止使用 __iterator__ 属性。
为什么这是个问题?
__iterator__ 属性是 SpiderMonkey 对 JavaScript 的一个扩展,可用于创建与 JavaScript 的 for in 和 for 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