javascript - ESlint 和函数或 const 中的对象扩展运算符,为什么会抱怨?
问题描述
解析错误:意外的令牌...
老实说,我不明白为什么 ESlint 会为第一个console.log
语句添加错误,而不是为第二个语句添加错误:
const generateCss = () => {
console.log({...{foo: 'bar'}});
};
function bar() {
console.log({...{foo: 'bar'}});
}
有什么解释还是我的错?
ESlint (v7.2.0) 配置:
{
"extends": "eslint:recommended",
"env": {
"es6": true,
"node": true,
"mocha": true
},
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module"
},
"rules": {
"array-bracket-spacing": "warn",
"arrow-parens": ["warn", "as-needed"],
"arrow-spacing": "warn",
"brace-style": "warn",
"comma-spacing": "warn",
"computed-property-spacing": "warn",
"consistent-return": "warn",
"curly": ["warn", "all"],
"eol-last": "warn",
"eqeqeq": "warn",
"func-call-spacing": "warn",
"indent": ["warn", 2, {
"SwitchCase": 1
}],
"key-spacing": ["warn"],
"new-cap": "warn",
"new-parens": "warn",
"no-multiple-empty-lines": ["warn", {
"max": 1
}],
"no-nested-ternary": "warn",
"no-return-assign": ["warn", "always"],
"no-trailing-spaces": "warn",
"no-unneeded-ternary": "warn",
"no-var": "warn",
"object-curly-spacing": ["warn", "always"],
"padded-blocks": ["warn", "never"],
"prefer-const": "warn",
"quote-props": ["warn", "as-needed"],
"quotes": ["warn", "single"],
"semi-spacing": "warn",
"space-before-blocks": ["warn", "always"],
"space-before-function-paren": ["warn", {
"anonymous": "always",
"asyncArrow": "always",
"named": "never"
}],
"space-in-parens": "warn",
"space-infix-ops": ["warn", {
"int32Hint": true
}],
"space-unary-ops": "warn",
"spaced-comment": ["warn", "always"],
"yoda": ["warn", "always", {
"onlyEquality": true
}]
}
}
解决方案
正如对答案的评论中提到的,对象传播是在 ES2018 中引入的。
因此,如果您使用更现代的 ES 功能,请记住为此更新"ecmaVersion"
配置内部。在这种情况下,您需要"ecmaVersion": 9
.
参考这里是完整列表:
ES3 -> 3
ES5 -> 5
ES2015 -> 6
ES2016 -> 7
ES2017 -> 8
ES2018 -> 9
ES2019 -> 10
ES2020 -> 11
推荐阅读
- python - 在 Pygame 中射击多个子弹
- python - 如何使用网格组织带有滚动条的列表框
- selenium-webdriver - 如何识别网页上的框架
- python - 未找到 tkinter 样式
- javascript - 使用两个参数将 div 标签传递给 Javascript 函数
- python - 文本文件的元组列表
- python - 上传和上传文件而不使用 python 请求保存
- c - 如何在我的 C 程序中多次使用“gets”函数?
- java - 使用条件通过休眠注释将最新记录映射到对象类
- ibm-cloud - Watson Assistant Chatbot 将用户输入保存在 Slots 中