You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker构建中npm run build报TS1110错误的解决求助

问题描述

在Docker构建过程中执行npm run build时出现错误。该项目约2年前开发时执行npm run build可正常运行,但重建开发环境后出现如下报错:

ERROR in node_modules/@types/jqueryui/index.d.ts(645,11): error TS1110: Type expected

尝试过升级typescript版本,大部分错误得以解决,但@types/jqueryui的这个错误始终无法消除;若删除@types/jqueryui,业务代码会因依赖缺失报错。

已做以下尝试:

  • 直接执行构建
  • 修改typescript版本
  • 调整与typescript有依赖关系的@angular/compiler-cli版本

已附上三种测试场景的错误日志、package.json及Dockerfile内容,恳请告知如何消除该错误。

解决方案

针对@types/jqueryui的TS1110错误,可尝试以下几种方案:

1. 锁定适配的@types/jqueryui版本

旧项目的@types/jqueryui可能与新版TypeScript存在语法兼容问题,找到和项目原有TypeScript版本匹配的@types/jqueryui版本:

  • 查看项目2年前正常构建时的package-lock.json或yarn.lock文件,找到当时使用的@types/jqueryui版本号
  • 执行命令安装指定版本:npm install @types/jqueryui@x.x.x --save-dev(替换x.x.x为对应版本)

2. 跳过类型检查(临时方案)

如果暂时无法找到适配版本,可在TypeScript配置文件tsconfig.json中添加如下配置,跳过对第三方库的类型检查:

{
  "compilerOptions": {
    "skipLibCheck": true
  }
}

该配置能快速解决构建报错,但可能掩盖其他潜在类型问题,建议仅作为临时过渡方案。

3. 手动修复@types/jqueryui的类型定义文件

直接修改node_modules/@types/jqueryui/index.d.ts第645行的错误:

  • 打开该文件定位到报错行,通常是旧版语法不符合当前TypeScript规范
  • 将无效的类型写法修改为合法格式,比如把占位符替换为any或项目实际需要的具体类型

4. 替换为自定义类型声明

如果官方类型定义无法兼容,可在项目中创建自定义类型声明:

  • 在项目根目录创建typings/jqueryui.d.ts文件,写入适配项目的类型声明(可参考旧版@types/jqueryui内容,调整为兼容当前TS的写法)
  • 在tsconfig.json中配置typeRoots,让TypeScript优先读取自定义类型:
{
  "compilerOptions": {
    "typeRoots": ["./typings", "./node_modules/@types"]
  }
}

内容的提问来源于stack exchange,提问作者user66292

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 11:09:50