tslint 一行规则错位 'else'

tslint one line rule misplaced 'else'

我在 tslint.json 中有 config 用于 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 是不好的做法吗?

你有:

else { next("b"); }

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

else { 
    next("b"); 
}

Is it bad practice to have one line else?

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

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

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

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

使用这种格式:

if(SomethingTrue) { next("a"); } else { next("b"); }
if (condition is true) {
  // do something;
}
else {
  // do something else;
}

请注意 else 紧挨着 }

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

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

确保您的 else if 或 else 从您关闭上一个条件 (}) 的同一行开始。

if (some condition) {
        // logic to be executed
    } else if (some additional condition) {
        // logic to be executed
    } else {
        // logic to be executed
    }