ksh*_*ine 1 javascript abstract-syntax-tree typescript eslint
由于 TSLint 已被弃用,我正在将项目转换为使用 ESLint。
我想设置我的缩进规则以允许这样做:
type HtmlColor = 'attrib' | 'background' | 'bg_whitespace' | 'comment' | 'entity' | 'error' | 'foreground' |
'invalid' | 'markup' | 'tag' | 'value' | 'warning' | 'whitespace';
Run Code Online (Sandbox Code Playgroud)
我目前收到关于第二行缩进的错误,它应该是 0 个空格而不是 17 个。我可能预计该错误会抱怨它不是 2 个空格,但肯定不是 0。
无论如何,如果我无法获得我想要识别的特定缩进,我至少希望在这种情况下忽略缩进。
我尝试使用ignoredNodesESLintindent规则的选项来修复此问题,如下所示:
"@typescript-eslint/indent": [
"error",
2,
{
"ArrayExpression": "first",
"FunctionDeclaration": { parameters: "first" },
"ignoredNodes": [
"ArrowFunction > Block",
"NoSubstitutionTemplateLiteral",
"TemplateLiteral",
"TypeAliasDeclaration *"
],
"ObjectExpression": "first",
"VariableDeclarator": "first",
"SwitchCase": 1
}
],
Run Code Online (Sandbox Code Playgroud)
我可以看到列表的一部分ignoredNodes按照我的预期工作,例如 部分"TemplateLiteral",但我无法找出正确的 AST 语法来处理声明type,以及箭头函数等其他内容。
我已经使用AST Explorer来帮助找出 AST 选择器应该是什么,但到目前为止还没有运气。
我找到了我正在寻找的语法:
"ignoredNodes": [
"ArrowFunctionExpression > BlockStatement",
"NoSubstitutionTemplateLiteral",
"TemplateLiteral",
"TSTypeAliasDeclaration *"
],
Run Code Online (Sandbox Code Playgroud)
诀窍是意识到AST Explorer的不同设置会为相同的 TypeScript 语言结构生成不同的节点名称!直到我专门将 AST Explorer 设置为使用@typescript-eslint/parser,而不仅仅是typescript,以及“ESLint v4”的转换,我在从 TypeScript 代码生成的解析树中得到了错误的选择器名称。
| 归档时间: |
|
| 查看次数: |
1510 次 |
| 最近记录: |