Javascript 告诉JSHint忽略对象变量名,如obj。@var

Javascript 告诉JSHint忽略对象变量名,如obj。@var,javascript,backbone.js,jshint,Javascript,Backbone.js,Jshint,我有一个应用程序,它使用IBMDomino生成的JSONWeb服务。每个对象中的几个成员都有以@符号开头的变量名,例如obj@unid。这会导致JSHint抛出一个错误,称为“意外@”。是否有一个选项可以关闭此功能?我认为对象的属性名不能包含“@”符号,也不能用引号进行封装(就像其他字符一样,如“-”、“+”、“^”等) 这些都是无效的: // Invalid: SyntaxError var obj = { @uid:123 }; console.log(obj.@uid); // Perf

我有一个应用程序,它使用IBMDomino生成的JSONWeb服务。每个对象中的几个成员都有以@符号开头的变量名,例如obj@unid。这会导致JSHint抛出一个错误,称为“意外@”。是否有一个选项可以关闭此功能?

我认为对象的属性名不能包含“@”符号,也不能用引号进行封装(就像其他字符一样,如“-”、“+”、“^”等)

这些都是无效的:

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

// Perfectly valid
var obj = { "@uid":123 };
console.log(obj["@uid"]);
听起来您的json Web服务没有通过使用引号封装名称来返回有效的json

现在,回答您的JSHint问题(对于其他偶然发现JSHint的人)。选项列表如下:但我不认为在这个具体案例中有任何帮助

根据docs(),您可以通过使用
--verbose
选项运行文件并将特定错误代码添加到
/*jshint*/
选项来隐藏明确的警告。例如,如果触发以下事件:

$ jshint --verbose myfile.js
myfile.js: line 6, col 3, Unnecessary directive "use strict". (W034)
您可以添加该警告代码以将其隐藏:

/* jshint -W034 */

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

是否可以接受obj['@unid']而不是obj。@unid?谢谢,修复了它:)谢谢。返回的JSON实际上看起来像{“@unid”:123}的第二个示例,因此使用obj[“@unid”]表示法对我来说很有效:)