jslint --edition=最新的意外ES6功能.常量
jslint --edition=latest Unexpected ES6 feature. const
我正在尝试使用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 不认为这段代码是有效的?
2020 年编辑:正如 ctrl-alt-delar 在评论中提到的那样,正如答案中预测的那样,JSLint 已经放弃了es6
要求——看起来像 2017 年 10 月 9 日。
也就是说, es6
不再是有效的 JSLint 选项。今天的OP代码将如下所示:
/*jslint browser */
/*global process */
const pdPersonsFilterId = process.argv[2];
但是,如果您认为自己处于 OP 的情况,请确保您用于 lint 文件的任何进程都没有使用旧版本的 JSLint。某些工具附带过时的版本,或者您的构建脚本可能维护旧版本,以免破坏旧代码。如果您遇到这种情况,以下解决方法应该可以正常工作。
但是,如果您知道您的JSLint版本比2017年10月9日更新,并且您遇到了似乎是es6错误,请打开一个新的StackOverflow问题!
<小时 />对于原始问题/旧版本的JSLint...
JSLint 对 ES6 非常满意;你只需要让它知道你正在使用 ES6。将 es6
指令添加到您的 JSLint 配置或文件之上,并从中获利。
/*jslint es6 */
const pdPersonsFilterId = process.argv[2];
现在,您看到的警告消失了。
来自JSLint的帮助:
ECMAScript [ES6] 的第六版可能需要一些时间才能达到到处存在。在未完全使用的环境中使用新功能实施新标准将导致失败。这就是为什么JSLint给出使用 ES6 功能时的警告。ES6的一些功能很好,因此,JSLint 将使用 es6 选项识别 ES6 的优点。如新标准的实施变得更加稳定和更好理解,JSLint 识别的特征集可能会增加。过渡到 ES6 完成后,es6 选项将是下降。[强调我的]
似乎很公平。所以你看到的只是警告你,你所拥有的可能不适用于不支持 ES6 的地方,因为现在有很多地方。一旦ES6更广泛 - 或者如果你明确让Crockford知道你打算使用ES6 - 警告就会消失。(TJ的观点可能是,至少对于Node,现在是删除警告的时候了;^D)
试试 ESLint。
它在NPM上有更好的统计数据,文档非常出色,并且被广泛使用。
- 如何在ASP.Net中使用ES6功能
- 无参数的ES6箭头功能
- 如何在启用ES6功能的情况下运行Node.js应用程序
- jslint --edition=最新的意外ES6功能.常量
- CoffeeScript 是否支持 ES6 中的生成器功能?
- ES6导出默认功能
- 导入功能 es6 Javascript
- Angular 2.0 :Typescript 是否支持 ES6 的所有功能
- 对箭头功能的理解es6
- ES6箭头功能
- 在所有浏览器支持下使用ES6功能
- D3.js事件侦听器无法访问“”;这个“;当使用ES6箭头功能时
- 在 Expressjs、Node 中使用 ES6 功能
- 这是ES6的新功能吗
- ES6对象.forOwn循环遍历对象键的功能
- ES6模块语法用于多个"static"功能
- ES6导出覆盖功能
- ES6导出和导入功能
- ES6地图功能
- 你能选择哪些ES6功能可以用Babel移植吗