Eslint
规则 | Rules

id-match

要求标识符匹配指定的正则表达式(id-match)

“计算机科学只有两件难事:缓存失效和命名事情。” - Phil Karlton

在项目中始终如一地命名事物往往是低估了代码创建的一个方面。正确完成后,它可以节省您的团队数小时不必要的头部划伤和误导。该规则允许您精确地定义和执行团队应该使用的变量和函数名称。不再限制你自己的骆驼,蛇,PascalCase 或oHungarianNotation。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]+)*$"]*/ var myFavoriteColor = "#112C85"; var foo = bar.baz_boom; var foo = { qux: bar.baz_boom }; do_something( var obj = { my_pref: 1 };

此规则的错误代码示例包含以下"^[a-z]+([A-Z][a-z]+)*$"选项:

/*eslint id-match: ["error", "^[a-z]+([A-Z][a-z]+)*$"]*/ var my_favorite_color = "#112C85"; var _myFavoriteColor = "#112C85"; var myFavoriteColor_ = "#112C85"; var MY_FAVORITE_COLOR = "#112C85"; function do_something() { // ... } obj.do_something = function() { // ... };

该规则有一个对象选项:

  • "properties": true 要求对象属性与指定的正则表达式匹配

  • "onlyDeclarations": true仅需要varfunction以及class声明匹配指定正则表达式

性能

Examples of incorrect code for this rule with the "^[a-z]+([A-Z][a-z]+)*$", { "properties": true } options:

/*eslint id-match: ["error", "^[a-z]+([A-Z][a-z]+)*$", { "properties": true }]*/ var obj = { my_pref: 1 };

onlyDeclarations

此规则的正确代码示例包含以下"^[a-z]+([A-Z][a-z]+)*$", { "onlyDeclarations": true }选项:

/*eslint id-match: [2, "^[a-z]+([A-Z][a-z]+)*$", { "onlyDeclarations": true }]*/ do_something(__dirname

何时不使用它

如果您不想为所有标识符实施任何特定的命名约定,或者您的命名约定太复杂而无法通过配置此规则来强制执行,则不应启用此规则。

版本

这条规则是在 ESLint 1.0.0中引入的。

资源