在括号前将分号置于asi模式

问题描述 投票:0回答:1

我正在用JSHint绘制我的JavaScript,并启用了此选项

"asi": true,
"white": true

避免在我的代码中使用分号。

但是我必须用支架开始我的新系列,所以我必须在开始之前加上一个分号

;(function () {

})

JSHint给了我两个错误:

  • ';'之后缺少空格
  • 如果我在';'之后放一个空格我得到:预期'('有不同的缩进

我注意到这样JSHint很高兴

;
(function () {

})

但我认为这不是一个好的解决方案。

有没有办法解决这个问题,而不关闭JSHint或白色选项?

javascript jshint automatic-semicolon-insertion
1个回答
3
投票

JSHint中的遗留white: true选项用于强制道格拉斯克罗克福德在其原始JSLint工具中推广的编码风格。不含分号的javascript将无法满足他的编码风格。如果你不想受限于他的风格指南,那么不要使用white: true

This list of JSHint options没有显示任何参数来自定义它们强制执行的编码风格。

为了证明没有答案,我去找了jshint源中的相关检查:

function nonadjacent(left, right) {
    if (option.white) {
        left = left || token;
        right = right || nexttoken;
        if (left.line === right.line && left.character === right.from) {
            left.from += (left.character - left.from);
            warning("Missing space after '{a}'.",
                    left, left.value);
        }
    }
}

检查的唯一配置选项是option.white,所以很遗憾没有办法达到你想要的行为。如果你真的想要一个能完全符合你想要的工具,你可以轻松地分叉jshint并添加另一个选项并在nonadjacent函数中检查它。

© www.soinside.com 2019 - 2024. All rights reserved.