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)
是否有我缺少的魔法设置来完成此通过?
您正在使用对象 Rest/Spread 属性,它不在 ES6 中,甚至还不是标准。目前处于第3阶段。
JSHint 尚不支持 Object Rest/Spread Properties。您可以使用experimentalObjectRestSpread具有实验支持的ESLint 替换 JSHint 。
或者,当然,您可以像 sabareesh 建议的那样忽略这些行。但是,就个人而言,我建议不要这样做。它会污染代码库并禁用后续的 linting。我建议改用 ESLint,因为它通常对更新的功能有更好的支持,而且似乎更受欢迎。