版本

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

資源

變更語言