tslint一条线规则放错了'else'

时间:2016-02-08 01:32:06

标签: typescript tslint

config

tslint.json中有one line rule {。}}
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是不好的做法?

4 个答案:

答案 0 :(得分:18)

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

请注意else

旁边有}
if (condition is true) {
  // do something;
} else {
  // do something else;
}

答案 1 :(得分:9)

你有:

else { next("b"); }

否则必须是一行一行。所以:

else { 
    next("b"); 
}
  

在其他地方有一行是不好的做法吗?

更容易阅读。它是一致的风格指南。

答案 2 :(得分:3)

根据tslint docs,问题是在"check-else"下指定one-line时,else必须与if的右括号位于同一行。

所以在你的情况下,而不是:

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

使用以下格式:

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

答案 3 :(得分:3)

if (condition) {
  // Your Code
} else {
  // Your Code
}

If的结尾和else的开头应该在同一行。