简体   繁体   中英

Custom ESLint/TypeScript indentation rules for parameters of method declaration

I'd like to be able to indent parameters in a method declaration so that they line up, but not be forced all the way into having to put each parameter on a separate line.

在此处输入图像描述

ESLint doesn't seem to have a rule for that, and I think I'll just have to give up having any indentation rules enforced at all within the list of my method's parameters. I can live with that.

I'm having a hard time figuring out the correct AST node syntax to express this, however. I'm using AST Explorer , but I can't figure out the correct node syntax to describe what I'm seeing there.

在此处输入图像描述

I can use MethodDefinition by itself, but that only controls the indentation of the start of the method itself, not anything about the parameters.

I can us MethodDefinition >:expression * , but then no indentation rules are enforced within the entire body of the method. I don't want to disable that much linting.

I've tried syntax like MethodDefinition > params > Identifier , but that doesn't do anything. Other variations on that theme crash ESLint.

Can anyone clue me in about the correct ESLint syntax for what I'm trying to do? Much appreciated!

I looks like I gave up too soon before posting here. The correct syntax is MethodDefinition Identifier . I guess the trick is to ignore any of the lowercase steps in the node hierarchy, and only specify the uppercase node types.

I think this should be the solution for the behavior you are looking for in the .eslintrc.js :

module.exports = {
  //...
  rules: {
    'indent': 'off',
    '@typescript-eslint/indent': ['warn', 2, {
      FunctionDeclaration: {
        parameters: 'first',
      },
    }],
  }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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