我可以创建一个 ESLint 规则来允许所有全局变量匹配一个正则表达式吗?
Can I create an ESLint rule that will allow all globals matching a regular expression?
我正在寻找 no-undef
规则的例外情况,该规则将允许未声明的全局变量匹配命名规则。在这种情况下,应该允许像 [A-Z][a-z]*Model
这样的正则表达式,所以 "CustomerModel" 和 "PatientModel" 都将被允许,因为在每个单元中放置 /* global CustomerModel */ 太麻烦了即使在 eslint 全局配置中,列出每个 *Model
全局也很麻烦。
我想要这样的规则:
"rules": {
"no-undef": [2, "[A-Z][a-z]*Model"],
上面的语法是我发明的,我希望显然意味着 "only complain when the above reg-expression name is not matched."
或者,如果有一种方法可以在 .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.
我正在寻找 no-undef
规则的例外情况,该规则将允许未声明的全局变量匹配命名规则。在这种情况下,应该允许像 [A-Z][a-z]*Model
这样的正则表达式,所以 "CustomerModel" 和 "PatientModel" 都将被允许,因为在每个单元中放置 /* global CustomerModel */ 太麻烦了即使在 eslint 全局配置中,列出每个 *Model
全局也很麻烦。
我想要这样的规则:
"rules": {
"no-undef": [2, "[A-Z][a-z]*Model"],
上面的语法是我发明的,我希望显然意味着 "only complain when the above reg-expression name is not matched."
或者,如果有一种方法可以在 .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.