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

是否有TSLint规则可强制函数/方法声明后换行及声明间空一行?

用TSLint强制函数/方法换行及声明间空行的解决方案

嘿,这个场景我太熟悉了!最近刚好帮团队配置过类似的代码规范规则,完全可以通过TSLint来解决你的两个需求,下面给你一步步拆解:

1. 强制函数/方法声明后换行

如果你的团队成员现在是把函数体直接跟在声明的大括号里(比如function foo() { console.log('hi'); }),想要强制声明后换行、函数体单独成行,你可以用这两个规则配合:

  • brace-style:控制大括号的换行风格,设置为1tbs(或者如果你偏好大括号单独占一行,就用allman),确保大括号和声明的位置符合要求。
  • newline-after-opening-brace:强制打开的大括号{后面必须换行,彻底杜绝把函数体挤在同一行的情况。

配置示例(加到你的tslint.json里):

{
  "rules": {
    "brace-style": [true, "1tbs"],
    "newline-after-opening-brace": [true, "always"]
  }
}

配置后,错误写法会被自动修正:
❌ 错误:

function myFunc() { console.log('hello'); }
class MyClass { myMethod() { /* 代码 */ } }

✅ 正确:

function myFunc() {
  console.log('hello');
}

class MyClass {
  myMethod() {
    /* 代码 */
  }
}

2. 强制函数/方法声明之间保留1个空行

这个要分两种场景处理:

类中的方法

用**newline-between-members**规则就行,它专门管类的成员(方法、属性)之间的空行,默认要求必须有且只有一个空行,还能禁止多余的空行。

配置示例:

{
  "rules": {
    "newline-between-members": [true, "always"]
  }
}

它会把挤在一起的类方法自动拉开:
❌ 错误:

class MyClass {
  foo() {
    // 代码
  }
  bar() {
    // 代码
  }
}

✅ 正确:

class MyClass {
  foo() {
    // 代码
  }

  bar() {
    // 代码
  }
}

全局/模块级别的函数

可以用**newline-after-function配合no-consecutive-blank-lines**:前者确保每个函数结束后换行,后者限制最多只能有1个连续空行,刚好保证两个函数之间只有一个空行。

配置示例:

{
  "rules": {
    "newline-after-function": [true, "always"],
    "no-consecutive-blank-lines": [true, 2]
  }
}

最终组合配置

把上面的规则整合起来,你的tslint.json相关配置会是这样:

{
  "rules": {
    "brace-style": [true, "1tbs"],
    "newline-after-opening-brace": [true, "always"],
    "newline-between-members": [true, "always"],
    "newline-after-function": [true, "always"],
    "no-consecutive-blank-lines": [true, 2]
  }
}

最后提一句:TSLint现在已经逐步被ESLint替代了,如果你们团队之后考虑迁移,ESLint也有完全等价的规则可以用,但针对当前需求,上面的TSLint配置已经能完美解决问题啦~

内容的提问来源于stack exchange,提问作者Eric Liprandi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:10:26