Javascript 获取分析错误:意外标记,应为“0”&引用;
我正在做一个大的Javascript 获取分析错误:意外标记,应为“0”&引用;,javascript,reactjs,typescript,tslint,Javascript,Reactjs,Typescript,Tslint,我正在做一个大的React+TypeScript项目 它在其他同事的本地机器上运行良好,但在我的机器上出现以下错误: Line 1: Parsing error: Unexpected token, expected ";" 如下所示: 以下是源代码: export type LoadOfferType = typeof import("../offers/defaultOffer"); export const loadOffer = async (): Promise<Load
React+TypeScript
项目
它在其他同事的本地机器上运行良好,但在我的机器上出现以下错误:
Line 1: Parsing error: Unexpected token, expected ";"
如下所示:
以下是源代码:
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");
}
};
这里有一些关于我的系统的信息:
$ node -v
v12.13.0
$ npm -v
6.12.0
$ yarn -v
1.19.1
你知道怎么解决这个问题吗
谢谢 您肯定使用的是旧版本的TypeScript。你的语法完全正确 测试 示例测试在本地完成。
可能会发生一些事情。您是否使用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: {},
},
],
}
createreact应用程序默认使用ESLint。但是,默认情况下,ESLint无法解析TypeScript。如果需要,可以考虑使用@ Type EsScript /解析器。
这可能是因为基本的babel eslint解析器在没有任何配置的情况下无法正常工作。
ESLint没有对不同的文件应用不同的解析器,因此babel ESLint可能会抛出错误
确保在项目的根目录中创建配置文件。我会从这个开始 你能粘贴
“./offer/defaultOffer”
的内容吗?当动态导入位于文件顶部并且看起来总是会被加载时,为什么要使用它?为什么不导出类型LoadOfferType=typeof require(“../offers/defaultOffer”)代码>?也可能您使用的TypeScript版本不正确。v2.4中添加了动态导入,您的配置中需要有“模块”:“esnext”
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: {},
},
],