# id-denylist

禁止指定标识符

"There are only two hard things in Computer Science: cache invalidation and naming things." — Phil Karlton

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

# 规则详情

此规则不允许在分配和 function 定义中指定标识符。

此规则将捕获不允许的标识符,这些标识符是:

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

它不会捕获不允许的标识符:

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

# 选项

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

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

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

**注意:**数组的第一个元素是规则严重性(参见 配置规则.数组中的其他元素是您要禁止的标识符。

带有示例 "data", "callback" 受限标识符的此规则的错误代码示例:

/*eslint id-denylist: ["error", "data", "callback"] */

var data = {...};

function callback() {
    // ...
}

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

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

class Foo {
    data = [];
}

class Foo {
    #data = [];
}

class Foo {
    callback( {);
}

class Foo {
    #callback( {);
}

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

/*eslint id-denylist: ["error", "data", "callback"] */

var encodingOptions = {...};

function processFileResult() {
    // ...
}

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

var itemSet = {
    entities: [...]
};

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 Foo {
    #items = [];
}

class Foo {
    method( {);
}

class Foo {
    #method( {);
}

# 何时不使用

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

Last Updated: 5/13/2023, 8:55:38 PM