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

Angular 8编译TS1086等错误:能否不为30+依赖设skipLibCheck?

不用全局开启skipLibCheck解决Angular库编译TS错误的方案

针对你遇到的TS1086、TS2304、TS2307这类依赖相关的编译错误,没必要全局开启skipLibCheck,可以用以下精准方案逐个解决:

  • 补充缺失的环境/模块类型

    • 对于TS2304(找不到ResizeObserver):在库的tsconfig.lib.json的compilerOptions.lib数组中添加"DOM",或者单独安装类型包:npm install @types/resize-observer-browser --save-dev
    • 对于TS2307(找不到arcgis-rest-api模块):直接安装对应类型包:npm install @types/arcgis-rest-api --save-dev;如果该包没有官方类型,也可以自己编写.d.ts声明文件放在项目的src/types目录下,并在tsconfig中配置typeRoots包含该目录
  • 单独跳过特定依赖的类型检查
    如果你确定某些依赖(比如Openlayers或其间接依赖)的类型定义本身有问题,可以在tsconfig.lib.json中把这些依赖的类型文件排除在检查范围外:

    "exclude": [
      "node_modules/openlayers/**/*.d.ts",
      "node_modules/arcgis-rest-api/**/*.d.ts"
    ]
    

    这样只会跳过指定依赖的类型检查,其他依赖仍会正常进行类型校验

  • 修复依赖的类型错误
    针对TS1086(环境上下文不能声明访问器)这类依赖类型文件的语法错误,可以用patch-package工具给依赖打本地补丁:

    1. 修改node_modules中对应依赖的.d.ts文件,修复访问器的声明问题
    2. 执行npx patch-package <依赖包名>生成补丁文件
    3. 将补丁文件提交到代码仓库,其他开发者安装依赖后会自动应用补丁
  • 调整编译配置的严格程度
    检查tsconfig.lib.json中的compilerOptions,如果是严格模式下的过严校验导致的问题,可以针对性关闭单个严格选项,比如:

    "compilerOptions": {
      "strict": true,
      "strictPropertyInitialization": false // 仅关闭特定过严的校验项
    }
    

    不建议全局关闭strict,尽量保留核心的类型校验规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:47:36