版本

newline-before-return

要求在 return 语句前有一个空行

🔧 可修复

此规则报告的某些问题可以通过 --fix 命令行 选项自动修复

重要

此规则在 ESLint v4.0.0 中已弃用。请使用 @stylistic/eslint-plugin-js 中的相应规则

了解更多

关于空行是否应在 JavaScript 中 return 语句之前,没有硬性规定。但是,清楚地标明函数返回的位置可以大大提高代码的可读性和清晰度。例如

function foo(bar) {
  var baz = 'baz';
  if (!bar) {
    bar = baz;
    return bar;
  }
  return bar;
}

添加换行符可以明显地将 return 语句与前几行分隔开来,从而清楚地表明函数在哪里退出以及它返回什么值

function foo(bar) {
  var baz = 'baz';

  if (!bar) {
    bar = baz;

    return bar;
  }

  return bar;
}

规则详情

此规则要求在 return 语句前有一个空行以提高代码清晰度,除非 return 单独位于语句组内(例如 if 语句)。在后一种情况下,return 语句不需要被描绘,因为它本身是单独的。注释将被忽略,并且不计为空行。

此规则的 错误 代码示例

在 Playground 中打开
/*eslint newline-before-return: "error"*/

function foo1(bar) {
    if (!bar) {
        return;
    }
    return bar;
}

function foo2(bar) {
    if (!bar) {
        return;
    }
    /* multi-line
    comment */
    return bar;
}

此规则的 正确 代码示例

在 Playground 中打开
/*eslint newline-before-return: "error"*/

function foo1() {
    return;
}

function foo2() {

    return;
}

function foo3(bar) {
    if (!bar) return;
}

function foo4(bar) {
    if (!bar) { return };
}

function foo5(bar) {
    if (!bar) {
        return;
    }
}

function foo6(bar) {
    if (!bar) {
        return;
    }

    return bar;
}

function foo7(bar) {
    if (!bar) {

        return;
    }
}

function foo8() {

    // comment
    return;
}

何时不使用

如果您对 return 语句之前的空格没有任何严格的约定,则可以安全地禁用此规则。

版本

此规则在 ESLint v2.3.0 中引入。

资源

更改语言