ecmascript-6 - JsHint 显示 es6 对象解构赋值错误

标签 ecmascript-6 jshint

我有以下测试代码

const sth = {
  one: 'one',
  two: 'two',
  three: {
    foo: 'foo',
    bar: 'bar',
  }
};

const state = {
  ...sth
};

当我运行 jshint 时,我得到以下输出

jshint --config .jshintrc test.js
test.js: line 12, col 3, Expected '}' to match '{' from line 11 and instead saw '...'.
test.js: line 12, col 6, Missing semicolon.
test.js: line 12, col 9, Missing semicolon.
test.js: line 12, col 6, Unrecoverable syntax error. (92% scanned).

4 errors

但这是完全有效的 es6 代码。

我的 .jshintrc 如下所示:

{
  "curly": false,
  "expr": true,
  "maxlen": 200,
  "esversion": 6
}

是否有我缺少的魔法设置才能通过?

最佳答案

您正在使用 Object Rest/Spread Properties这不在 ES6 中,甚至还不是标准。目前处于第 3 阶段。

JSHint does not support Object Rest/Spread Properties , 然而。您可以将 JSHint 替换为具有 experimental support using experimentalObjectRestSpread 的 ESLint .

或者,当然,您可以按照 sabareesh 的建议忽略这些行。但是,就我个人而言,我建议不要这样做。它会污染代码库,还会禁用后续的 linting。我建议改用 ESLint,因为它通常对新功能有更好的支持,而且似乎更受欢迎。

关于ecmascript-6 - JsHint 显示 es6 对象解构赋值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47177483/

相关文章:

syntax - WebStorm/JetBrains : cannot recognize es6 syntax in a . vue文件

javascript - 如何将常量列表导出为 JavaScript 类的一部分

javascript - 将 JSHint 与 Express.js/'delete' 一起使用(保留字)

javascript - 我们如何不允许在我的代码库中使用硬选项卡?我们正在使用 JSHint

javascript - jshint 忽略 :line with Eclipse issue

javascript - 如何在 IIFE 中使用 es6 导入?

javascript - 能够在控制台中查看 JSON,但不知道如何在 View 中显示 - React-Redux

javascript - 将 let 变量带出临时死区

jshint - 如何在Atom中设置jshint/jsxhint “esnext”选项

javascript - 在 Sonar 中显示 jsHint 和 cssLint 结果