【问题标题】:ESLint throwing "Parsing error: Unexpected token :" on variable that ends in :ESLint 在结尾的变量上抛出“解析错误:意外的令牌:”:
【发布时间】:2018-06-19 15:30:44
【问题描述】:

我正在做一个笑话项目,而 linter 给我带来了一个问题......

error 解析错误: Unexpected token :

我一直在使用 lint 配置,我不确定我搞砸了什么,但是当我转到代码时,我看到了......

const BULLET: string = chalk.bold('\u25cf');

这对我来说似乎很奇怪(一个以 : 结尾的名字)这是一个常见的 React 实践还是只是一个错字?有没有办法告诉 ESLint 在整个过程中忽略这个约定?

【问题讨论】:

  • JS 无效。你确定你没有使用 TypeScript?
  • 我想同意你的观点,但这是 FB 代码...github.com/facebook/jest/blob/master/packages/jest-validate/src/… (ln 14) 为什么它在他们的 master 分支上?
  • 你确定这不是 babel 或 React 的东西吗?
  • 因为项目使用TypeScript?而 是 在 Jest devDependencies 中,因为里面有 TypeScript 代码。
  • 这不是 TS。它是流语法。您需要 eslint 插件进行流式处理,并使用 //@flow 注释标记文件。

标签: reactjs eslint


【解决方案1】:

这是流语法。你需要用

标记你的文件
//@flow

并且可能还为流语法添加 Babel 和 ESlint 插件。

见https://flow.org/en/

【讨论】:

  • 我们以github.com/jrgleason/jest/blob/master/packages/jest-validate/… 为例。我添加了插件:['flowtype'],但是当我运行时,我仍然在字符串上得到错误:。我没有使用 babel-parser 是流程的问题吗?我想避免它
  • @jackie 它没有有效的javascript,您需要某种预处理器,至少要删除注释。
  • 没有 Babel 有没有办法做到这一点?
  • @Jackie 当然,例如npmjs.com/package/flow-node 但是如果你不想使用flow,为什么不直接删除注释呢?为了让 ESLint 理解它,有插件 github.com/gajus/eslint-plugin-flowtype
  • @Jackie 你是对的,我要删除我的 cmets。他们自己使用 babel 来翻译他们的代码,仅此而已。这同样适用于 eslint flow 插件。
【解决方案2】:

看来我错了;这确实是 Flow 语法。正确答案见其他回复。

这就是 Typescript 语法。你应该配置你的 linter 来支持 typescript。

对于 ESLint:

npm install --save-dev typescript-eslint-parser

在你的 ESLint 配置文件中:

"parser": "typescript-eslint-parser"

【讨论】:

  • 有趣的是它有一个 .js 扩展名。一定是通天塔?
  • 流程,不是打字稿。
猜你喜欢
  • 2016-07-13
  • 2019-12-25
  • 2022-10-09
  • 2017-11-21
  • 2017-07-16
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
相关资源
最近更新 更多