JSHint 是否支持异步/等待?

新手上路,请多包涵

我将 JSHint 用于 JavaScript 项目(使用 Visual Studio Code)。在这个项目中,我使用了 async / await,JSHint 将其突出显示为错误。

我尝试设置 jshint,但似乎“esversion”的最大版本是 6。

jshint 是否支持异步/等待?如果可以,如何开启?如果没有,是否有任何解决方法?

原文由 Alena Gilevskaya 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 446
2 个回答

更新(2019 年 2 月) :从版本 2.10.1 开始支持 Async/await。只需更新您的 .jshintrc 即可使用 "esversion": 9 。 (+信息: 版本变更日志


更新(2018 年 7 月) :Async/await 将随着 JsHint 2.10.0 的发布而到来。 +信息: https ://github.com/jshint/jshint/pull/3273


JSHINT 开发社区认为:

  • 在开始实现 ES7 特性之前,JSHINT 应该首先支持所有的 ES6 语法。
  • 异步函数仅处于第 1 阶段,因此语法可能会发生很大变化

JSHINT-ESNEXT(包)

然而,有一个非官方的 JSHINT 包,其中包含 _对 await/async 的实验性支持_,称为 JSHINT-ESNEXT

作者 @marcominetti 使用了官方的 JSHint 2.7 Master 分支并引入了这个 ES7 特性,取自 Seb Vincent esnextnext 分支。

检查 Npm Packagegithub 中的源代码

安装:$npm install -g jshint-esnext

现在(2017 年 7 月),这是在 JSHINT 中支持等待/异步的唯一可用方法。


JSHINT 忽略(指令)

一个常见的建议解决方法或缓解措施是使用 JSHINT 忽略指令。

 // Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */

或者:

 ignoreThis(); // jshint ignore:line

当我们的代码有大量异步/等待引用时,我个人觉得这种缓解措施很脏而且很混乱。但更令人困惑和肮脏的是 JSHINT 警告和错误 ;)

原文由 colxi 发布,翻译遵循 CC BY-SA 4.0 许可协议

jshint 是否支持异步/等待?

不,截至 2017 年初还没有。

它似乎还不支持 async/await 。从事 jsHint 工作的人们已经决定不支持 async/await 直到标准处于后期阶段(显然之前因为在它们仍在变化时过早地支持它们而被烧毁) - 尽管实现已经存在(Babel,nodejs, ETC…)。

如果您关注此 jsHint 未决问题线程,截至 7 天和 11 天前的最新评论,它仍然是一个未决问题。

如果没有,是否有任何解决方法?

截至 2017 年 7 月,似乎有一个名为 jshint-esnext 的 jsHint 代码的分支,它在此处支持异步/等待: https ://www.npmjs.com/package/jshint-esnext。

原文由 jfriend00 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏