繁体   English   中英

jslint --edition=latest Unexpected ES6 特性。 常量

[英]jslint --edition=latest Unexpected ES6 feature. const

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

我的 nodejs 脚本中有一个常量,但 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 的代码会像这里写的那样 lint:

/*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] 第六版可能需要一段时间才能普及。 在未完全实施新标准的环境中使用新功能将导致失败。 这就是为什么在使用 ES6 特性时 JSLint 会给出警告的原因。 ES6 的一些特性是好的,所以 JSLint 会通过 es6 选项识别 ES6 好的部分。 随着新标准的实现变得更加稳定和更好地理解,JSLint 识别的功能集可能会增加。 过渡到 ES6 完成后,将删除 es6 选项。 [emph 我的]

似乎很公平。 所以你看到的只是警告你,你所拥有的东西可能无法在不支持 ES6 的地方工作,因为现在有很多地方。 一旦 ES6 更加普及——或者如果你明确让 Crockford 知道你打算使用 ES6——警告就会消失/消失。 (TJ 的观点可能是,至少对于 Node,现在是消除警告的时候了。;^D)

试试ESLint

它在NPM上有更好的统计数据,文档很棒并且被广泛使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM