如何告诉JSLint不要求{在单行if语句

ope*_*sas 14 jslint jslint4java sublimetext2

现在我有以下代码:

if (c > last) break;
Run Code Online (Sandbox Code Playgroud)

并且jslint抱怨

jslint:crud.js:69:19:Expected '{' and instead saw 'break'.
Run Code Online (Sandbox Code Playgroud)

有几种方法可以克服它:

if (c > last) { break; }
Run Code Online (Sandbox Code Playgroud)

要么

if (c > last) { 
  break; 
}
Run Code Online (Sandbox Code Playgroud)

但是当if语句在同一行时,我希望jslint不要抱怨.

有没有办法配置它?

BTW:我正在使用sublime text和sublime-jslint插件,具有以下配置:

{
    // Path to the jslint jar.
    // Leave blank to use bundled jar.
    "jslint_jar": "",

    // Options pass to jslint.
    "jslint_options": "--indent 2 --white --maxerr 10000 --nomen --browser --plusplus --es5",

    // Ignore errors, regex.
    "ignore_errors":
    [
        "Combine this with the previous 'var' statement.",
        "It is not necessary to initialize"
    ],

    // run jslint on save.
    "run_on_save": false,

    // debug flag.
    "debug": false
}
Run Code Online (Sandbox Code Playgroud)

知道如何配置吗?

Jam*_*ice 15

不幸的是,JSLint没有提供一个配置选项来告诉它容忍这个.在JSLint眼中,最好始终使用块语句跟随条件或迭代语句,即使所述块只包含一个语句也是如此.

如果切换到JSHint,它更易于配置,您可以使用以下curly选项:

/*jshint curly: false */
Run Code Online (Sandbox Code Playgroud)

这将JSHint配置为允许单个语句没有花括号,无论它是否与前面的条件语句或迭代语句位于同一行.

如果你的Sublime插件只支持JSLint,我强烈推荐SublimeLinter,这就是我使用的.它支持JSLint和JSHint.

  • 要忽略单行if语句,请使用`curly:false` (2认同)
  • 倾向于将这个有争议的事实陈述为事实:"好的做法是始终遵循带有块语句的条件或迭代语句." 请用"有些程序员推荐......"来预测这些类型的陈述. (2认同)