首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

id-match

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

在项目中始终如一地命名事物往往是低估了代码创建的一个方面。正确完成后,它可以节省您的团队数小时不必要的头部划伤和误导。该规则允许您精确地定义和执行团队应该使用的变量和函数名称。不再限制你自己的骆驼,蛇,PascalCase 或oHungarianNotation。Id-match 满足您的所有需求!

规则细节

此规则要求赋值和function定义中的标识符与指定的正则表达式匹配。

选项

此规则对于指定的正则表达式具有字符串选项。

例如,为了执行 camelcase 命名约定:

代码语言:javascript
复制
{
    "id-match": ["error", "^[a-z]+([A-Z][a-z]+)*$"]
}

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

代码语言:javascript
复制
/*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]+)*$"选项:

代码语言:javascript
复制
/*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:

代码语言:javascript
复制
/*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 }选项:

代码语言:javascript
复制
/*eslint id-match: [2, "^[a-z]+([A-Z][a-z]+)*$", { "onlyDeclarations": true }]*/

do_something(__dirname);

何时不使用它

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

版本

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

资源

扫码关注腾讯云开发者

领取腾讯云代金券