【问题标题】:how to isolate constructor parameters when writing custom ESlint rule for Typescript为Typescript编写自定义ESlint规则时如何隔离构造函数参数
【发布时间】:2021-07-26 12:39:33
【问题描述】:

我的目标是使用 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',
          });
        },
      };
    }

任何帮助将不胜感激!

【问题讨论】:

    标签: typescript eslint customization abstract-syntax-tree


    【解决方案1】:

    我知道这已经是很久以前的事了,但我希望它仍然可以对您或其他人派上用场。我们刚刚发布了一个可自动修复的规则,它对由@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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-21
      • 2019-12-12
      • 1970-01-01
      • 1970-01-01
      • 2015-09-06
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多