You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过ESLint强制类方法间及属性与方法间添加空行?

如何用ESLint强制类属性与方法、方法与方法间的空行?

我需要用ESLint实现以下规则:

  • 类的属性与方法之间必须添加空行
  • 类的方法与方法之间必须添加空行
  • 类的属性之间不需要强制添加空行

错误示例(需触发ESLint错误):

class MyClass {
  myProp1: string;
  myProp2: string;
  method1 () {
  }
  method2 () {
  }
}

正确示例(不应触发错误):

class MyClass {
  myProp1: string;
  myProp2: string;

  method1 () {
  }

  method2 () {
  }
}

我当前的ESLint配置对函数有效,但对类方法不起作用:

'lines-between-class-members': 'off',
'@typescript-eslint/lines-between-class-members': ['error',
  { blankLine: 'always', prev: ['*'], next: ['function', 'block']}
],

请问该如何调整配置?


解决方案

问题出在你配置里使用的成员类型不符合@typescript-eslint/lines-between-class-members规则的定义,该规则的成员类型是field(属性)、method(方法)这类特定值,而非function或block。

你可以替换成以下配置:

'lines-between-class-members': 'off',
'@typescript-eslint/lines-between-class-members': [
  'error',
  // 属性与方法之间必须有空行
  {
    blankLine: 'always',
    prev: 'field',
    next: 'method'
  },
  // 方法与方法之间必须有空行
  {
    blankLine: 'always',
    prev: 'method',
    next: 'method'
  },
  // 属性之间允许无空行
  {
    blankLine: 'any',
    prev: 'field',
    next: 'field'
  }
]

这个配置会:

  1. 强制要求属性之后跟方法时必须有空行
  2. 强制要求方法之后跟方法时必须有空行
  3. 不对属性之间的空行做强制要求(可加可不加)

完全匹配你需要的规则效果。

内容的提问来源于stack exchange,提问作者Andre M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 11:34:52