忽略JSHint中的camelcase变量

时间:2013-10-18 11:20:43

标签: javascript coding-style jshint code-cleanup

JShint和以下代码行存在一些问题。

$location.path('map-' + map.id + '/venue-' + map.attributes.default_venue.value);

我收到错误,Identifier 'default_venue' is not in camel case.这通常不会成为问题,但我对变量名称没有任何控制权 - 它是通过JSON API引入的。

对于受影响的变量或它们出现的行,我有什么办法可以解决这个问题吗?

如果之前有人问过这个道歉,我很确定它一定是,但我找不到解决方案。

5 个答案:

答案 0 :(得分:125)

JSHint在函数级别遵循指令,因此您可以找到封闭函数并为其添加camelcase选项。这是一个例子:

/*jshint camelcase: true */

var not_camel_case = 1; // Warns

function example() {
  /*jshint camelcase: false */
  var not_camel_case = 2; // Does not warn
}

答案 1 :(得分:19)

根据JSHint Docs,您可以在名为 .jshintrc 的同一目录中创建配置文件,或者将任何目录创建到根目录。我只是用它来设置我的:

  {
    "camelcase": false
  }

这里有许多其他选项:http://jshint.com/docs/options/#camelcase

答案 2 :(得分:4)

我将来自api的属性名称放在一个单独的字符串中。 E.g:

var defaultVenueAttributeKey = 'default_venue';
$location.path('map-' + map.id + '/venue-' + map.attributes[defaultVenueAttributeKey].value);

它有点冗长,但您可以将来自API的所有属性名称组合在一起,然后它可以更轻松地响应API。

答案 3 :(得分:-2)

接受的答案/*jshint camelcase: true */对我不起作用。我还是得到了错误。

我查看docs,发现这个解决方案对我有用:

/*eslint camelcase: ["error", {properties: "never"}]*/

答案 4 :(得分:-6)

尝试这样的事情..虽然邪恶,但它会起作用。

var foo;
$.each( jsonArray, function ( i, value ) {
    if ( i === 'array_element' ) {
        foo = value;
    }
});