版本

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

资源

更改语言