我正在寻找 no-undef
规则的异常(exception)情况,该规则将允许未声明的全局变量匹配命名规则。在这种情况下,应该允许使用像 [A-Z][a-z]*Model
这样的正则表达式,因此“CustomerModel”和“PatientModel”都将被允许,因为放置/* global CustomerModel * 太麻烦了/在每个单元中,即使在 eslint 全局配置中也无法列出每个全局的 *Model
。
我想要这样的规则:
"rules": {
"no-undef": [2, "[A-Z][a-z]*Model"],
上面的语法是我发明的,我希望明显的意思是“只有当上面的正则表达式名称不匹配时才会提示。”
或者,如果有一种方法可以在 .eslintrc 文件全局列表中指定正则表达式匹配。
最佳答案
好吧,如果您愿意,您可以创建自己的规则。
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 .
关于javascript - 我可以创建一个 ESLint 规则来允许所有全局变量匹配一个正则表达式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39733313/