JSHint - ^ '简洁方法' 在 ES6 中可用
Posted
技术标签:
【中文标题】JSHint - ^ \'简洁方法\' 在 ES6 中可用【英文标题】:JSHint - ^ 'concise methods' is available in ES6JSHint - ^ '简洁方法' 在 ES6 中可用 【发布时间】:2016-09-07 10:27:10 【问题描述】:我正在尝试使用 AJAX 提交一个简单的表单。我正在使用 grunt 作为任务运行程序来编译我的 JS 文件等等。
这是我到现在为止所做的。
$("form").submit(function(event)
event.preventDefault();
var formData =
$("#username").val(),
$("#password").val()
;
$.ajax(
url: 'xxx',
type: 'POST',
dataType: 'json',
data: formData,
encode: true
)
.done(function(data)
console.log(data);
)
);
我怀疑任务即将运行时出现 JSHint 错误
$("#username").val(), ^ 'concise methods' 在 ES6(使用 esnext 选项)或 Mozilla JS 扩展(使用 moz)中可用。
这是我的 gruntfile(jshint 任务)
jshint:
ignore_warning:
options:
'-W099': true,
/*'-W041': true,*/
'-W044': true,
'-W033': true,
'-W043': true,
'-W049': true,
'-W004': true,
'-W065': true,
'-W083': true, // Corrigir futuramente
,
src: ['public/_assets/src/js/modules/*.js'],
这到底是什么意思?我该如何解决这个错误?
谢谢!
【问题讨论】:
【参考方案1】:formData
正文缺少名称:
var formData =
$("#username").val(),
$("#password").val()
;
任何类型的简写对象字面量,无论是计算名称还是内联方法,都是 ES6 特性。
您几乎可以肯定只需要将名称添加到您已经获得的值中:
var formData =
username: $("#username").val(),
password: $("#password").val()
;
使用 ES6,您可以在对象字面量中声明方法,如下所示:
var formDataFetch =
username()
return $("#username").val()
;
(详情请参阅this blog post)
这似乎是解析器认为您的对象包含的内容。
【讨论】:
你遇到这个问题特别严重,因为$
是一个合法标识符,所以$(...)
看起来就像一个方法声明。以上是关于JSHint - ^ '简洁方法' 在 ES6 中可用的主要内容,如果未能解决你的问题,请参考以下文章
Vue项目中提示JSHint: import is only available in ES6 (use esversion: 6)解决