版本

id-denylist

禁用指定的标识符

❄️ 已冻结

此规则当前已冻结,并且不接受功能请求。

“计算机科学中只有两件难事:缓存失效和命名。” — Phil Karlton

通用的名称可能导致难以理解的代码。此规则允许您指定不允许的标识符名称的拒绝列表,以避免这种做法。

规则详情

此规则禁止在赋值和 function 定义中使用指定的标识符。

此规则将捕获以下不允许的标识符

  • 变量声明
  • 函数声明
  • 在对象创建期间分配的对象属性
  • 类字段
  • 类方法

它不会捕获以下不允许的标识符

  • 函数调用(因此您仍然可以使用您无法控制的函数)
  • 对象属性(因此您仍然可以使用您无法控制的对象)

选项

该规则接受一个或多个字符串作为选项:受限标识符的名称。

例如,要限制通用标识符的使用

{
    "id-denylist": ["error", "data", "err", "e", "cb", "callback"]
}

注意: 数组的第一个元素用于规则严重性(请参阅配置规则)。数组中的其他元素是您要禁用的标识符。

此规则的不正确代码示例,带有示例 "data", "callback" 受限标识符

在 Playground 中打开
/*eslint id-denylist: ["error", "data", "callback"] */

const data = { ...values };

function callback() {
    // ...
}

element.callback = function() {
    // ...
};

const itemSet = {
    data: [...values]
};

class Foo {
    data = [];
}

class Bar {
    #data = [];
}

class Baz {
    callback() {}
}

class Qux {
    #callback() {}
}

此规则的正确代码示例,带有示例 "data", "callback" 受限标识符

在 Playground 中打开
/*eslint id-denylist: ["error", "data", "callback"] */

const encodingOptions = {...values};

function processFileResult() {
    // ...
}

element.successHandler = function() {
    // ...
};

const itemSet = {
    entities: [...values]
};

callback(); // all function calls are ignored

foo.callback(); // all function calls are ignored

foo.data; // all property names that are not assignments are ignored

class Foo {
    items = [];
}

class Bar {
    #items = [];
}

class Baz {
    method() {}
}

class Qux {
    #method() {}
}

何时不使用

如果您不想限制某些标识符的使用,则可以关闭此规则。

版本

此规则在 ESLint v7.4.0 中引入。

资源

更改语言