我正在使用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)
但是,有一个
作者@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进行检查。
它不是很漂亮,但是它会喂养斗牛犬。