jslint --edition =最新的意外ES6功能.常量

Nik*_*age 19 javascript const jslint node.js ecmascript-6

我正在尝试使用node-jslint https://github.com/reid/node-jslint以保持我的代码清洁

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

 Unexpected ES6 feature.
const pdPersonsFilterId = process.argv[2]; // Line 10, Pos 0
Run Code Online (Sandbox Code Playgroud)

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

jslint --edition=latest index.js
Run Code Online (Sandbox Code Playgroud)

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

为什么jslint不认为此代码有效?

ruf*_*fin 19

JSLint对ES6很满意; 你必须让它知道你正在使用ES6.将es6指令添加到JSLint配置或文件顶部,并获利.

/*jslint es6 */
const pdPersonsFilterId = process.argv[2];
Run Code Online (Sandbox Code Playgroud)

现在你看到的警告就消失了.

从JSLint的帮助:

第六版ECMAScript [ES6]可能需要一段时间才能达到普遍性.使用环境中未完全实施新标准的新功能将导致失败.这就是使用ES6功能时JSLint发出警告的原因.ES6的一些功能很好,因此JSLint将使用es6选项识别ES6的优点.随着新标准的实现变得更加稳定和更好理解,JSLint识别的特征集可能会增加. 转换到ES6完成后,将删除es6选项.[我的]

看起来很公平.所以你所看到的只是警告你,你所拥有的东西在不支持ES6的地方可能不起作用,因为现在很多地方都有.一旦ES6更广泛 - 或者如果你明确让Crockford知道你打算使用ES6 - 那么警告就会消失.(TJ的观点可能是,至少在Node上,现在是删除警告的时候了.; ^ D)

  • @TJCrowder我认为你有[节点包装](https://github.com/reid/node-jslint)责备那里(有一个问题)(https://github.com/reid/node- jslint/issues/147)),而不是Crockford.痛苦的是,看起来节点包装器仍然使用[2015年10月的JSLint for ES6](https://github.com/reid/node-jslint/blob/master/lib/jslint-es6.js)有'es6`选项.Crockford没有(afaik)发布JSLint版本超出[规范"在线版本](http://jslint.com)和[GitHub上的原始代码](https://github.com/douglascrockford/JSLint/斑点/主/ jslint.js). (3认同)
  • 如何将其添加到配置文件中?(我相信文件名应该是`.jslintrc`,但是`{"es6":true}`什么都不做) (3认同)

cze*_*asz 12

试试ESLint.

它有更好的NPM统计数据,文档很精彩,并且被广泛使用.