我有一个使用IBM Domino生成的JSON Web服务的应用程序。每个对象中的几个成员具有以@符号开头的变量名,例如obj。@ unid。这导致JSHint抛出一个错误,说'Unexpected @'。有没有可以关闭它的选项?
答案 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”错误代码无法被抑制,因此在这种情况下上述示例对您不起作用。