web-dev-qa-db-ja.com

tslint1行のルールが誤って配置されました 'else'

tslint.jsonone line ruleにそのようなconfigがあります

one-line": [true,
      "check-open-brace",
      "check-catch",
      "check-else",
      "check-whitespace"
    ],

そのようなコード行があるとき:

if(SomethingTrue) { next("a"); }
else { next("b"); }

警告があります:

(one-line) file.ts[17, 9]: misplaced 'else'

なぜそれが起こるのですか? line elseを1つ持つのは悪い習慣ですか?

10
sreginogemoh

あなたが持っている :

else { next("b"); }

それ以外の場合は、1つ1行でなければなりません。そう:

else { 
    next("b"); 
}

別の行を1つ持つのは悪い習慣ですか?

読みやすいです。一貫性のためのスタイルガイド。

9
basarat
if (condition is true) {
  // do something;
}
else {
  // do something else;
}

else}の隣にあることに注意してください

if (condition is true) {
  // do something;
} else {
  // do something else;
}
21
user7823874
if (condition) {
  // Your Code
} else {
  // Your Code
}

Ifの終わりとelseの始まりは同じ行にある必要があります。

3
SReddy

tslint docs によると、問題は、"check-else"one-lineの下に指定されている場合、elseはifの閉じ中括弧と同じ行になければならないということです。

したがって、あなたの場合、代わりに:

if(SomethingTrue) { next("a"); }
else { next("b"); }

この形式を使用します。

if(SomethingTrue) { next("a"); } else { next("b"); }
3
zejuel