版本

id-denylist

禁止指定的标识符

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

通用名称会导致难以理解的代码。此规则允许您指定一个禁止的标识符名称黑名单以避免这种做法。

规则详情

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

此规则将捕获被禁止的标识符,这些标识符是

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

它不会捕获被禁止的标识符,这些标识符是

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

选项

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

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

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

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

此规则使用示例"data", "callback"受限标识符的错误代码示例

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

var data = { ...values };

function callback() {
    // ...
}

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

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

class Foo {
    data = [];
}

class Bar {
    #data = [];
}

class Baz {
    callback() {}
}

class Qux {
    #callback() {}
}

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

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

var encodingOptions = {...values};

function processFileResult() {
    // ...
}

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

var 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 中引入的。

资源

更改语言