React应用构建报错TS1110:Type expected问题解决求助
解决.NET Core 3.1 + React 构建时的 TS1110 类型错误
快速修复步骤:
锁定兼容类型包版本
直接在项目根目录的package.json里指定适配旧版TypeScript的@types/react和@types/react-redux版本:"@types/react": "^17.0.0", "@types/react-redux": "^7.1.24"执行
npm install重新安装依赖。升级TypeScript到支持模板字符串类型的最高兼容版本
由于Node 12.x最高支持TypeScript 4.9.x,执行以下命令安装:npm install typescript@~4.9.0 --save-dev清理缓存后重新构建
- 删除
node_modules文件夹和package-lock.json文件 - 执行
npm cache clean --force清空npm缓存 - 重新运行
npm install,之后再执行你的dotnet publish命令:dotnet publish "" /p:target=package /p:WebPublishMethod=Package /p:LastUsedBuildConfiguration=Release /p:LastUsedPlatform="Any CPU" /p:UsePowerShell=True /p:PackageLocation="%~dp0src\Website<project path>\obj\Release\Package" /p:PackageFileName="%~dp0src\Website<project path>\obj\Release\Package<projectArtifact in zip format>.zip" /p:PackageAsSingleFile=true
- 删除
问题原因:
报错代码里的${T} 是TypeScript 4.1才引入的模板字符串类型,你当前项目的TypeScript版本低于4.1,同时@types/react自动安装了适配TypeScript 5.x的ts5.0版本,两者语法不兼容导致报错。另外Node 12.18.3对TypeScript 5.x的支持有限,无法直接升级到最新TS版本。
补充调整(可选):
如果构建时MSBuild调用的Node版本和本地不一致,可在项目的.csproj文件中添加以下配置锁定Node版本:
<PropertyGroup> <NodeVersion>v12.18.3</NodeVersion> </PropertyGroup>
内容的提问来源于stack exchange,提问作者Rajeswaran
相关产品推荐
相关产品推荐

