Gar*_*ary 5 javascript lint ternary-operator eslint template-literals
缩进的ESLint规则允许您在使用ignoredNodes选项确定是否应将规则应用于该节点时指定忽略哪些节点。
我有以下要用此规则忽略的代码:
const a = b
? `c${
d
}`
: e
Run Code Online (Sandbox Code Playgroud)
具体来说,与的行d和随后的行被报告为比应有的空格多两个。我想忽略规则中的那些行,但是我无法弄清楚应该应用的节点。
节点类型在此仓库中指定。我知道像在此代码中使用的那样,三元表达式是一个ConditionalExpression节点,似乎存在模板文字节点,但我无法使其正常工作。
我知道我可以使用eslint-disable-next-line,eslint-disable等等,但是我不想使用它们,因为那样的话每次出现时我都必须使用它们。
Dav*_*ald 12
通过简单地查看ast 树${foo},我确认它确实是TemplateLiteral节点。但是我碰巧也从那里知道了解决方案:您还需要选择它的孩子。这可以通过TemplateLiteral > *. 为什么你的解决方案是不工作的原因是因为ESLint 将免除TemplateLiteral从缩进规则,但只有小${和}零件,而不是内容。
这可以进入您的 ESLintrc 文件,如下所示:
"indent": ["error", "tab", { "ignoredNodes": ["TemplateLiteral > *"] }]
Run Code Online (Sandbox Code Playgroud)
很抱歉没有其他人能够更快地回答您的问题。
要忽略模板文字中 ESLint 中的所有缩进和换行错误,包括函数调用或深度嵌套的 JS 语法,您可以使用"ignoredNodes": ["TemplateLiteral *"](不使用>子选择器,以所有后代为目标。)
"rules": {
"indent": ["error", 2, { "ignoredNodes": ["TemplateLiteral *"] }],
"function-paren-newline": "off"
}
Run Code Online (Sandbox Code Playgroud)
您还必须指定您的常规缩进规则,例如"error", 2强制使用 2 个空格或"error", "tab"制表符。
"function-paren-newline" 在我的模板文字中也给出了错误,我也想禁用它(因为我正在扩展一个显示错误的现有 ESLint 配置)。
| 归档时间: |
|
| 查看次数: |
979 次 |
| 最近记录: |