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

Red*_*ile 1 jshint ecmascript-6

我有以下测试代码

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

const state = {
  ...sth
};
Run Code Online (Sandbox Code Playgroud)

当我运行 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
Run Code Online (Sandbox Code Playgroud)

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

我的 .jshintrc 如下所示:

{
  "curly": false,
  "expr": true,
  "maxlen": 200,
  "esversion": 6
}
Run Code Online (Sandbox Code Playgroud)

是否有我缺少的魔法设置来完成此通过?

str*_*str 5

您正在使用对象 Rest/Spread 属性,它不在 ES6 中,甚至还不是标准。目前处于第3阶段。

JSHint 尚不支持 Object Rest/Spread Properties。您可以使用experimentalObjectRestSpread具有实验支持的ESLint 替换 JSHint 。

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