版本

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

資源

變更語言