繁体   English   中英

为Typescript编写自定义ESlint规则时如何隔离构造函数参数

[英]how to isolate constructor parameters when writing custom ESlint rule for Typescript

我的目标是使用 eslint 中的“快速修复”按字母顺序对构造函数参数进行排序(我正在尝试编写此自定义规则以执行此操作)

现在我只想“隔离”构造函数参数,并在我将鼠标悬停在它们上面时让 eslint 显示波浪线和我的message ,但我不知道如何通过查看此示例代码的 AST 来获得它: https://astexplorer.net/#/gist/dc0def03c26658b1bfa5d8743f9a9f91/70365c30bee24bbec8289744ef4d33cf42268cb8

我选择哪一个? 以及如何确保它只检查构造函数中的那些?

//example code used in AST explorer      
constructor(
        private _appService: AppService,
        private _authService: AuthService,
        private _formBuilder: FormBuilder,
        private _manageScenarioService: ManageScenarioService,
      ) {}

这就是我到目前为止所拥有的:问题在于它突出显示了所有标识符,而不仅仅是构造函数中的标识符

 import { Rule } from 'eslint';
    export function diSortRule(context: Rule.RuleContext): Rule.RuleListener {
      return {
        Identifier(node) {
          context.report({
            node,
            message: 'this pops up here',
          });
        },
      };
    }

任何帮助将不胜感激!

我知道这已经是很久以前的事了,但我希望它仍然可以对您或其他人有用。 我们刚刚发布了一个可自动修复的规则,它对由@Component()@Directive()@Injectable()@Pipe()之一修饰的类中的构造函数参数进行排序。

您可以将其用作:

  1. 安装我们的插件: npm install --save-dev @erento/eslint-plugin-erento-rules

  2. 将此添加到您的 .eslintrc

     "plugins": [ "@erento/erento-rules" ], "rules": { "@erento/erento-rules/injectable-order": "error" }
  3. 运行你的 ESLint linter

更多关于这条规则的信息在这里: https : //github.com/erento/eslint-plugin-erento-rules/blob/master/src/rules/injectable-order.md

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM