告诉JSHint忽略像obj。@ var这样的对象变量名

时间:2014-01-14 15:21:51

标签: javascript backbone.js jshint

我有一个使用IBM Domino生成的JSON Web服务的应用程序。每个对象中的几个成员具有以@符号开头的变量名,例如obj。@ unid。这导致JSHint抛出一个错误,说'Unexpected @'。有没有可以关闭它的选项?

1 个答案:

答案 0 :(得分:2)

我不认为对象的属性名称可以包含“@”符号而不能用引号封装(就像其他字符一样,例如“ - ”,“+”,“^ “等等。)

这些都是无效的:

// Invalid: SyntaxError
var obj = { @uid:123 };
console.log(obj.@uid);

// Perfectly valid
var obj = { "@uid":123 };
console.log(obj["@uid"]);

听起来你的json webservice没有通过不用引号封装名称而首先返回有效的JSON。

现在,回答你的JSHint问题 (对于那些偶然发现JSHint的人来说)。选项列表在这里:http://www.jshint.com/docs/options/但我认为在这个具体情况下我没有任何帮助。

根据文档(http://www.jshint.com/docs/),您可以通过使用--verbose选项运行文件并将特定错误代码添加到/* jshint */选项来隐藏显式警告。例如,如果触发以下内容:

$ jshint --verbose myfile.js
myfile.js: line 6, col 3, Unnecessary directive "use strict". (W034)

您可以添加该警告代码以隐藏它:

/* jshint -W034 */

不幸的是,您的变量命名不是警告,但是错误(E024)和那些“E”错误代码无法被抑制,因此在这种情况下上述示例对您不起作用。