id-match
要求識別符號符合指定的正規表示式
此規則目前為凍結狀態,且不接受功能請求。
「電腦科學中只有兩件難事:快取失效和命名。」— Phil Karlton
在專案中一致地命名事物是程式碼建立中經常被低估的一個方面。如果做得正確,它可以為您的團隊節省數小時不必要的絞盡腦汁和誤入歧途。此規則允許您精確定義和強制執行團隊應使用的變數和函數名稱。不再將自己限制為 camelCase、snake_case、PascalCase 或 HungarianNotation。id-match
涵蓋您的所有需求!
規則詳細資訊
此規則要求賦值和 function
定義中的識別符號符合指定的正規表示式。
選項
此規則具有字串選項,用於指定的正規表示式。
例如,要強制執行 camelcase 命名慣例
{
"id-match": ["error", "^[a-z]+([A-Z][a-z]+)*$"]
}
使用 "^[a-z]+([A-Z][a-z]+)*$"
選項時,此規則的不正確程式碼範例
/*eslint id-match: ["error", "^[a-z]+([A-Z][a-z]+)*$"]*/
const = "#112C85";
const = "#112C85";
const = "#112C85";
const = "#112C85";
function () {
// ...
}
class {}
class myClass {
() {}
}
class anotherClass {
() {}
}
使用 "^[a-z]+([A-Z][a-z]+)*$"
選項時,此規則的正確程式碼範例
/*eslint id-match: ["error", "^[a-z]+([A-Z][a-z]+)*$"]*/
const myFavoriteColor = "#112C85";
const foo = bar.baz_boom;
const buz = { qux: bar.baz_boom };
do_something();
const obj = {
my_pref: 1
};
class myClass {}
class anotherClass {
doSomething() {}
}
class oneMoreClass {
#doSomething() {}
}
此規則具有物件選項
"properties": false
(預設) 不檢查物件屬性"properties": true
要求物件字面屬性和成員表達式賦值屬性符合指定的正規表示式"classFields": false
(預設) 不檢查類別欄位名稱"classFields": true
要求類別欄位名稱符合指定的正規表示式"onlyDeclarations": false
(預設) 要求所有變數名稱符合指定的正規表示式"onlyDeclarations": true
僅要求var
、const
、let
、function
和class
宣告符合指定的正規表示式"ignoreDestructuring": false
(預設) 對解構的識別符號強制執行id-match
"ignoreDestructuring": true
不檢查解構的識別符號
properties
使用 "^[a-z]+([A-Z][a-z]+)*$", { "properties": true }
選項時,此規則的不正確程式碼範例
/*eslint id-match: ["error", "^[a-z]+([A-Z][a-z]+)*$", { "properties": true }]*/
const obj = {
: 1
};
obj. = function() {
// ...
};
classFields
使用 "^[a-z]+([A-Z][a-z]+)*$", { "classFields": true }
選項時,此規則的不正確程式碼範例
/*eslint id-match: ["error", "^[a-z]+([A-Z][a-z]+)*$", { "classFields": true }]*/
class myClass {
= 1;
}
class anotherClass {
= 1;
}
onlyDeclarations
使用 "^[a-z]+([A-Z][a-z]+)*$", { "onlyDeclarations": true }
選項時,此規則的正確程式碼範例
/*eslint id-match: [2, "^[a-z]+([A-Z][a-z]+)*$", { "onlyDeclarations": true }]*/
foo = __dirname;
ignoreDestructuring: false
使用預設 "^[^_]+$", { "ignoreDestructuring": false }
選項時,此規則的不正確程式碼範例
/*eslint id-match: [2, "^[^_]+$", { "ignoreDestructuring": false }]*/
const { } = query;
const { = 1 } = query;
const { : } = query;
const { category_id: } = query;
const { category_id: , ... } = query;
ignoreDestructuring: true
使用 "^[^_]+$", { "ignoreDestructuring": true }
選項時,此規則的不正確程式碼範例
/*eslint id-match: [2, "^[^_]+$", { "ignoreDestructuring": true }]*/
const { category_id: } = query;
const { category_id: , ... } = query;
使用 "^[^_]+$", { "ignoreDestructuring": true }
選項時,此規則的正確程式碼範例
/*eslint id-match: [2, "^[^_]+$", { "ignoreDestructuring": true }]*/
const { category_id } = query;
const { category_Id = 1 } = query;
const { category_alias: category_alias } = query;
何時不該使用
如果您不想對所有識別符號強制執行任何特定的命名慣例,或者您的命名慣例太過複雜而無法透過設定此規則來強制執行,那麼您不應啟用此規則。
版本
此規則在 ESLint v1.0.0 中引入。