【问题标题】:ES6 '...' notation gives error in jslint?ES6 '...' 符号在 jslint 中给出错误?
【发布时间】:2016-11-28 14:22:45
【问题描述】:

每当我在使用“...”表示法时针对 jslint 运行代码时,我都会收到 Unexpected token 错误。我正在为 Grommet UI 使用 grommet-toolbox(以及用于 React 的 UI/UX 框架),因此当我运行 gulp dev 命令时出现此错误,因此无法编写如下代码:

return {...state, fetching: true}

(上面的代码在这个文件的第10行:https://github.com/learncodeacademy/react-js-tutorials/blob/master/5-redux-react/src/js/reducers/tweetsReducer.js

如何解决这个问题?

【问题讨论】:

  • 不是 ES6/2015 也不是 ES2016,但不是标准化的语法。您必须使用 babel-eslint 才能正常工作。

标签: javascript ecmascript-6 react-jsx jslint jsx


【解决方案1】:

Object spread operator 不是 ECMASCRIPT 标准,而 Array spread operator 是。所以,这可能是你的 lint-issue 的原因。

您可以在这里找到更多信息:https://github.com/sebmarkbage/ecmascript-rest-spread


请注意,我建议您看一下eslint,因为它是用于 esnext 的常用 linter(它是可插入的,并且可能有避免此问题的解决方案)。

【讨论】:

    【解决方案2】:

    请尝试使用Object.assign,而不是使用扩展运算符,它们应该可以完成同样的事情。只是没有 jshint 输出警告/错误。

    【讨论】:

      【解决方案3】:

      如果您使用 JSHint,您可以在项目根目录的 .jshintrc 中使用它。

      {
        "esnext": true,
        "esversion": 6
      }
      

      【讨论】:

      • 这似乎不起作用:Incompatible values for the 'esversion' and 'esnext' linting options. (0% scanned)
      • 我在 vsc 中遇到此错误,并按照您的建议更新我的 .jshintrc 以解决问题。
      • -1。 显然是关于 jslint 的问题。解释如何做 OP 要求 使用不同的工具 是无益且无关紧要的。
      猜你喜欢
      • 2017-11-24
      • 2012-04-26
      • 2017-01-20
      • 2020-12-11
      • 2011-01-29
      • 1970-01-01
      • 2012-10-21
      • 1970-01-01
      • 2019-08-28
      相关资源
      最近更新 更多