【问题标题】:How to set a curly rule properly?如何正确设置卷曲规则?
【发布时间】:2018-12-01 00:41:07
【问题描述】:

我使用 curly 选项来按需

if (1)
    for (let i = 0; i < 10; i++)
        if (0) console.log(1);
else console.log(0);

但正如您所知,在上述情况下存在问题,else 语句对应于第二个 if 语句。

所以我像这样重写它,但我得到了一个警告。

if (1) { // Block contains only one statement; remove the curly braces.
    for (let i = 0; i < 10; i++)
        if (0) console.log(1);
}
else console.log(0);

是否有避免该警告的选项?如果是这样,请给我一个提示。谢谢阅读。 :)

【问题讨论】:

    标签: javascript typescript tslint


    【解决方案1】:

    不是一个好方法,但可以。

    if (1)
        for (let i = 0; i < 10; i++)
            if (0) console.log(1);
    if(!1) console.log(0);

    【讨论】:

    • 我们只使用花括号,如果只是为了防止不可读的代码:)(无意冒犯)
    • @Kokodoko 我完全赞成使用花括号,但如果你想删除这种类型的警告,那么只使用上面的。(这就是为什么我写 不是一个好方法 i>)
    • 感谢您的想法! :)
    • @Kokodoko 我只是不使用 curl 来使代码垂直变长,因为在我看来,这也是可读代码的问题。我认为可读的代码也是最重要的,但感谢您的意见!
    【解决方案2】:

    我运行了您首先编写的代码,它运行良好。虽然我同意花括号会使它更具可读性。我用 true 和 false 替换了您的第一个 if 语句,以确保 if 和 else 都正常工作并且它们是。

    let myVar = false;
    
    if(myVar) 
     for(let i = 0; i < 10; i++) 
      if(myVar) console.log(1);
    else console.log(0)
    

    这是带有花括号的相同代码。它使它更长,但更容易阅读。

    let myVar = false;
    
    if(myVar) {
     for(let i = 0; i < 10; i++) {
      if(myVar) {
        console.log(1);
      }
     } 
    }
    else {
     console.log(0)
    }
    

    【讨论】:

    • 是的,如果 myVar 为假,我会得到“0”。如果您将 myVar 更改为 true,您将在控制台上打印 10 次“1”。
    猜你喜欢
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 2014-10-09
    • 1970-01-01
    相关资源
    最近更新 更多