Skip to content
← Back to rules

eslint/max-lines-per-function 严格

An auto-fix is available for this rule.

它的作用

强制限制函数中的代码行数上限。此规则确保函数不会超过指定的行数,促进编写更小、更专注的函数,从而更容易维护和理解。

为什么这是不好的?

有些人认为大函数是代码异味的表现。大函数往往执行过多操作,使得代码逻辑难以追踪。许多编码风格指南都规定了函数可包含的最大行数。此规则有助于强制执行这种风格。

示例

以下为该规则在特定最大值设置下的错误代码示例:

js
/* { "eslint/max-lines-per-function": ["error", 2] } */
function foo() {
  const x = 0;
}

/* { "eslint/max-lines-per-function": ["error", 4] } */
function foo() {
  // 一个注释后跟一个空行

  const x = 0;
}

以下为该规则在特定最大值设置下的正确代码示例:

js
/* { "eslint/max-lines-per-function": ["error", 3] } */
function foo() {
  const x = 0;
}

/* { "eslint/max-lines-per-function": ["error", 5] } */
function foo() {
  // 一个注释后跟一个空行

  const x = 0;
}

配置

此规则接受一个配置对象,包含以下属性:

IIFEs

type: boolean

default: false

IIFEs 选项控制是否将立即执行的函数表达式(IIFEs)计入行数统计。默认情况下,IIFEs 不被考虑,但当设为 true 时,它们将被计入函数的行数。

max

type: integer

default: 50

函数允许的最大行数。

skipBlankLines

type: boolean

default: false

跳过仅由空白字符组成的行。

skipComments

type: boolean

default: false

跳过仅包含注释的行。

如何使用

要通过配置文件或 CLI 启用此规则,可以使用:

json
{
  "rules": {
    "max-lines-per-function": "error"
  }
}
bash
oxlint --deny max-lines-per-function

参考资料