我突然在Visual Studio的很多地方收到了此消息。



我可以使用Java验证Java,但它是什么意思,为什么下面的表达式会引起这种情况?

if ((self.display.current() !== display.LOSER && self.display.current() !== display.WINNER) || !self.bye()) {

}

最佳答案

此规则具有字符串选项:

  • "all"(默认)不允许在任何表达式
  • 周围加上不必要的括号
  • "functions"仅在函数表达式
  • 周围禁止不必要的括号

    该规则有一个对象选项,用于“all”选项的异常(exception):
  • "conditionalAssign":false允许在条件测试表达式中的赋值周围加上多余的括号
  • "returnAssign":false允许在返回语句
  • 中的赋值周围加上多余的括号
  • "nestedBinaryExpressions":false允许在嵌套二进制表达式
  • 中使用额外的括号

    比较这两个代码:

    使用默认"all"选项的此规则的错误代码示例:
    /* eslint no-extra-parens: "error" */
    
    a = (b * c);
    (a * b) + c;
    typeof (a);
    (function(){} ? a() : b());
    

    的示例使用默认的"all"选项为此规则正确的代码:
    /* eslint no-extra-parens: "error" */
    
    (0).toString();
    ({}.toString.call());
    (function(){}) ? a() : b();
    (/^a$/).test(x);
    

    并且您的代码正确格式是
    self.display.current() !== display.LOSER && self.display.current() !== display.WINNER || !self.bye()
    

    关于javascript - Visual Studio中表达式周围的无用括号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53174513/

    10-10 08:59
    查看更多