版本

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 陳述式是單獨的,因此不需要劃分。註解會被忽略,不算作空行。

此規則的不正確程式碼範例

在遊樂場中開啟
/*eslint newline-before-return: "error"*/

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

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

此規則的正確程式碼範例

在遊樂場中開啟
/*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 中引入。

資源

變更語言