【问题标题】:How to tell JSLint not to ask for { on single line if statements如何告诉 JSLint 不要在单行 if 语句中要求 {
【发布时间】:2013-01-06 14:36:06
【问题描述】:

现在我有以下代码:

if (c > last) break;

而 jslint 抱怨

jslint:crud.js:69:19:Expected '{' and instead saw 'break'.

有几种方法可以克服它:

if (c > last) { break; }

if (c > last) { 
  break; 
}

但我希望 jslint 在 if 语句在同一行时不要抱怨。

有什么方法可以配置吗?

顺便说一句:我正在使用 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
}

知道如何配置它吗?

【问题讨论】:

    标签: sublimetext2 jslint jslint4java


    【解决方案1】:

    不幸的是,JSLint 没有提供一个配置选项来告诉它容忍这种情况。在 JSLint 看来,最好总是在条件或迭代语句后加上块语句,即使该块只包含一条语句。

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

    /*jshint curly: false */
    

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

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

    【讨论】:

    • 非常感谢,我会试一试...你知道它是否适用于 jslint4java 吗?上班不知道能不能装node
    • @opensas - 恐怕它不会... jslint4java 只是 JSLint 的一个 Java 包装器。 JSHint 最初是 JSLint 的一个直接分支,但现在它们已经大不相同了,需要有人为它编写一个单独的 Java 包装器。
    • 忽略单行 if 语句使用curly: false
    • 它有效,但不幸的是也允许两行 if 不带花括号
    • 由于将这个有争议的事实作为事实陈述而被否决:“良好的做法是始终遵循带有块语句的条件或迭代语句。”请用“一些程序员推荐...”来断言这些类型的语句
    猜你喜欢
    • 2013-12-28
    • 2010-12-19
    • 2022-09-27
    • 2020-03-01
    • 2016-04-15
    • 2015-05-31
    • 2012-10-25
    • 1970-01-01
    相关资源
    最近更新 更多