I'm using JSHint for the JavaScript project (with the Visual Studio Code). And in this project I use async / await, which JSHint highlights as errors.
I tried to set up jshint, but the it seems like the maxim version of "esversion" is 6.
Does jshint support async/await yet? If it does, how to turn it on? And if not, are there any workarounds?
Update (February 2019) : Async/await are now supported as of version 2.10.1. Simply update your .jshintrc to use
"esversion": 9
. (+Info : Version changelog)
Update (july 2018) : Async/await will arrive with the release of JsHint 2.10.0. +info : https://github.com/jshint/jshint/pull/3273
The JSHINT developing community considers that:
- JSHINT should first support all the ES6 syntax before start implementing ES7 features.
- Async Functions are only at stage 1, so the syntax can change a lot
However, there is an unnoficial JSHINT package, wich contains experimental support for await/async, called JSHINT-ESNEXT.
The author, @marcominetti, used the official JSHint 2.7 Master branch and introduced this ES7 feature, taken from the Seb Vincent esnextnext branch.
Check the Npm Package, and the source in github
Installation: $npm install -g jshint-esnext
Right now (Jul 2017) this is the only decent available approach to support await/async in JSHINT.
A common suggested workaround or mitigation practice, is using the JSHINT ignore directives.
// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */
Or:
ignoreThis(); // jshint ignore:line
I personally find this mitigation practice, dirty and confusing, when our code has a big amount of async/await references. But more confusing and dirty are the JSHINT warnings and errors ;)