我可以创建一个允许所有全局变量匹配正则表达式的ESLint规则吗?

时间:2016-09-27 20:00:13

标签: javascript eslint

我正在寻找$gender = 'female'规则的例外,该规则允许未声明的全局变量匹配命名规则。在这种情况下,应该允许使用no-undef这样的正则表达式,因此“CustomerModel”和“PatientModel”都是允许的,因为在每个单元中放置/ *全局CustomerModel * /太麻烦而且每个单元都很麻烦[A-Z][a-z]*Model即使在eslint全局配置中也是全局的。

我想有这样的规则:

*Model

上面的语法是由我发明的,我希望显然意味着“只有在上述reg-expression名称不匹配时才会抱怨。”

或者,如果有办法在.eslintrc文件全局列表中指定正则表达式匹配。

1 个答案:

答案 0 :(得分:3)

嗯,如果您愿意,可以创建自己的规则。

no-undef rule的来源很短。可能你需要更换那里定义的条件

if (!considerTypeOf && hasTypeOfOperator(identifier)) {
    return;
}

类似

if (/Model$/.test(identifier.name) || !considerTypeOf && hasTypeOfOperator(identifier)) {
    return;
}

确保以Model结尾的全局标识符不会触发错误。

您可能还想参数化标识符格式,而不是在源代码中对其进行硬编码。 由于您是一位经验丰富的程序员,您当然可以自己弄清楚这种方法的细节和注意事项。

这可能是工作中最简单的部分。仍然需要一些机制来使您的自定义规则起作用。有关如何创建自定义规则的更多信息,请访问:http://eslint.org/docs/developer-guide/working-with-rules