jslint –edition = latest意外的ES6function。 常量

我试图使用node-jslint https://github.com/reid/node-jslint为了保持我的代码清洁

我在我的nodejs脚本中有一个const,但jslint说这是不是有效的ES6代码

Unexpected ES6 feature. const pdPersonsFilterId = process.argv[2]; // Line 10, Pos 0 

这是我在控制台中使用的命令

 jslint --edition=latest index.js 

根据https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const可以使用全局常量。

为什么jslint不认为这个代码是有效的?

JSLint用ES6足够快乐; 你只需要让它知道你正在使用ES6。 将es6指令添加到您的JSLintconfiguration或您的文件上,并获利。

 /*jslint es6 */ const pdPersonsFilterId = process.argv[2]; 

现在你看到的警告消失了。

从JSLint的帮助 :

第六版ECMAScript [ES6]可能需要时间才能达到普及。 在未完全实施新标准的环境中使用新function将导致失败。 这就是为什么当使用ES6function时JSLint会给出警告。 ES6的一些function非常好,所以JSLint将通过es6选项来识别ES6的优点。 随着新标准的实施变得更加稳定和更好理解,JSLint认可的一组特征可能会增加。 过渡到ES6完成后,es6选项将被删除。 [emph mine]

看起来很公平。 所以你所看到的仅仅是警告你,在ES6不被支持的地方,你可能无法工作,因为现在有很多地方。 一旦ES6更广泛 – 或者如果你明确地让Crockford知道你打算使用ES6 ,警告就会消失。 (TJ的观点可能是,至less在Node中,现在是删除警告的时候; ^ D)

试用ESLint 。

它具有更好的NPM统计数据,文档精美,应用广泛。