如何配置ESLint规则禁止字符串或模板字面量中出现"foo"
配置ESLint禁止字符串/模板字面量中出现"foo"
你已经通过no-restricted-syntax规则的Literal[value=/foo/]匹配了普通字符串(比如const str1 = 'foo bar';),要处理模板字面量(比如const str2 = foo ${bar};),需要针对TemplateLiteral类型的AST节点添加匹配规则:
完整规则配置
{ "rules": { "no-restricted-syntax": [ "error", "Literal[value=/foo/]", "TemplateLiteral > TemplateElement[value.raw=/foo/]" ] } }
规则说明
TemplateLiteral:对应ESLint AST中的模板字面量节点TemplateElement:模板字面量中的静态文本片段(比如示例里${bar}前的foo就是这类节点)value.raw:存储模板片段的原始字符串内容(保留模板里的原始格式,比value.cooked更适合做内容匹配)/foo/:正则表达式,匹配包含"foo"的任意文本
这样配置后,普通字符串和模板字面量中出现的"foo"都会触发ESLint错误提示。
内容的提问来源于stack exchange,提问作者Emmett
相关产品推荐
相关产品推荐

