正在解析错误:意外的令牌,预期为“;”

时间:2019-10-21 16:39:40

标签: javascript reactjs typescript tslint

我正在做一个大型的React + TypeScript项目。

它在其他同事的本地计算机上运行良好,但是在我的计算机上,我收到以下错误消息:

Line 1:  Parsing error: Unexpected token, expected ";"

如下所示:

enter image description here

这是源代码:

export type LoadOfferType = typeof import("../offers/defaultOffer");

export const loadOffer = async (): Promise<LoadOfferType> => {
  const offerName = process.env.NODE_ENV === "development" ? process.env.REACT_APP_FALLBACK_SITE : "defaultOffer";

  /**
   * We use a switch statement instead of ane xpression for the offer path
   * because Webpack throws a critical dependency error when using paths
   * that are not explicitly defined.
   */
  switch (offerName) {
    case "mysite.com":
      return await import("../offers/mysite.com");
    default:
      return await import("../offers/defaultOffer");
  }
};

克隆存储库后我运行的命令是:

$ yarn install
$ yarn start

这里有一些有关我的系统的信息:

$ node -v
v12.13.0

$ npm -v
6.12.0

$ yarn -v
1.19.1

关于如何解决此问题的任何想法?

谢谢!

2 个答案:

答案 0 :(得分:0)

您肯定是在使用旧版本的TypeScript。您的语法完全正确。

已测试

示例测试在本地完成。 enter image description here

答案 1 :(得分:0)

可能正在发生一些事情。您是否使用ts配置和解析器配置创建了ts.config.js,例如:

 export const typescriptConfig = {
 extends: ['plugin:@typescript-eslint/eslint- 
 recommended'],
 overrides: [
   {
     parser: '@typescript-eslint/parser',
     extends: [
       'plugin:@typescript-eslint/recommended',
       'prettier/@typescript-eslint',
       'plugin:import/typescript',
     ],
     plugins: ['@typescript-eslint'],

     files: ['*.ts', '*.tsx'],

     rules: {},
   },
 ],

}

默认情况下,Create React App使用ESLint。但是,默认情况下,ESLint无法解析TypeScript。如果需要,可以考虑使用@ typescript-eslint / parser。

这可能是没有任何配置的基本babel-eslint解析器无法正常工作。 ESLint不会将不同的解析器应用于不同的文件,因此babel-eslint可能会引发错误。

确保在项目的根目录中创建了配置文件。我将从那开始。