Jshint支持异步/等待



我正在使用Jshint进行JavaScript项目(带有Visual Studio代码)。在这个项目中,我使用异步/等待,jshint将其重点为错误。

我试图设置jshint,但似乎" eSversion"的格式版本为6。

jshint支持异步/等待吗?如果这样做,如何打开它?如果没有,是否有解决方法?

更新(2019年2月):ASYNC/等待截至版本2.10.1。只需更新您的.jshintrc以使用"esversion": 9即可。( 信息:版本changelog)


更新(2018年7月):Async/等待Jshint 2.10.0的发布将到达。 信息:https://github.com/jshint/jshint/pull/3273


开发社区的Jshint认为:

  • Jshint首先在开始实施ES7功能之前首先支持所有ES6语法。
  • 异步函数仅在第1阶段,因此语法可以更改很多

jshint-esnext(package)

但是,有一个,Wich包含 at ermync ,称为 jshint-esnext

作者@marcominetti使用了官方的Jshint 2.7 Master Branch并介绍了此ES7功能,从SEB Vincent Esnextnext分支。

检查NPM软件包,github中的源

安装:$ npm install -G jshint -esnext

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


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警告和错误;)

jshint支持异步/等待吗?

否,截至2017年初还没有。

看来它尚未支持async/await。从事Jshint工作的人们决定在标准处于后期之前不支持async/await(显然,在仍在改变时已经过早地支持事物,尽管已经存在实施) - 尽管已经存在实施(Babel,Nodejs等)。

如果您遵循此jshint Open问题线程,那么7和11天前的最近评论仍然是一个空旷的问题。

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

截至2017年7月,似乎有一个称为jshint-esnext的jshint代码的叉>

注意:使用"接受答案"中建议的叉状jshint-esnext软件包(NPM和GitHub),需要设置"实验性"选项。

/* experimental: [asyncawait] */

/* experimental: [asyncawait, asyncreqawait] */

有关详细信息,请参见源代码。

OP问它有任何解决方法。这是一个kludge,但是我用" async/**/'和'等待/***/'代替了所有"异步"或"等待"。然后,一个快速脚本将它们交换为'/* async*/'and'and'/*等待*/'允许我与jshint进行检查。

它不是很漂亮,但是它会喂养斗牛犬。

最新更新