2017-10-22 59 views
-1

私はコード内のエラーを解決するためにes-lintを使用しています。私は、このエラーに遭遇している:私は常に復帰後else文を使用していた'return'の後ろには不要な 'else'があります。 (No-else-return)

Unnecessary 'else' after 'return'. (No-else-return)

} else { 

。私が見落としているかもしれないことはありますか?

if (cctot <= 3 && cctot > 0) { 
     alert('Credit under $3.00 not allowed'); 
     return Number.MIN_SAFE_INTEGER; // important to return 0 so we can check for these conditions for validation 
    } else { 
     cctot *= -1; 
    } 
    } 
    return precise(cctot); 
} 
module.exports = calculateCredit; 
+0

完全なスニペットを投稿してください。それだけで助けてくれるでしょう –

+6

'return'が実行されると、関数は終了します。 'else'を使うと、冗長で誤解を招くことがあります。 – Pointy

+0

https://eslint.org/docs/rules/no-else-return – JLRishe

答えて

5

基本的には、if部分にリターンがあればif文のelse部分が不要であるということです。このような 何かが、それは期待するものである:

if (cctot <= 3 && cctot > 0) { 
     alert('Credit under $3.00 not allowed'); 
     return Number.MIN_SAFE_INTEGER; // important to return 0 so we can check for these conditions for validation 
} 
cctot *= -1; 

return文を使用している場合、述べられた条件が満たされていないときにのみ実行されますif次のコードのように、他の部分のための必要はありません後。

+0

これは完全に行く方法です。 –

+0

@DavidBriertonはそのコードのバージョンを投稿します。 – Pointy

+0

そのバージョン**には**があります。 「解析エラー」のあるバージョンはどのように見えるのですか? – Pointy

6

これはコードスタイルの設定です。 elseは不要で、代わりにelseコードをifのすぐ下に置くことができます。これは、ifが成功するとその機能が終了するため、elseコードには決して到達できないからです。

ので、この:

if (condition) { 
    return foo; 
} else { 
    // do bar 
} 

return baz 

がこれに相当します

if (condition) { 
    return foo; 
} 

// do bar 

return baz 

このスタイルは異なるプログラミングコミュニティが異なるようです。 Go開発者はほとんどの場合、elseを省略していますが、私はもっと多くのJS開発者がそれを含んでいるのを見てきました。

私はelseから離れるのが好きですが、やはり純粋に優先事項です。あなたにそれほど心配しないでください。人々はこの種のことについて独断的になるかもしれませんが、それは本当に重要ではありません。

関連する問題