You need to enable JavaScript to run this app. 使用vite时如何解决两个依赖库d.ts文件重复声明的问题?
优惠活动
大模型
产品
解决方案
定价
更多

使用vite时如何解决两个依赖库d.ts文件重复声明的问题?

无依赖排除的冲突解决方法

以下三种方案都不需要移除你项目中的两个冲突依赖:

  • 方案1:全局跳过第三方库类型校验
    在tsconfig.json的compilerOptions配置项中添加"skipLibCheck": true,该配置只会跳过所有第三方依赖的类型冲突校验,不会影响项目业务代码的类型检查逻辑,是改造成本最低的方案。
    配置示例:

    {
      "compilerOptions": {
        // 原有配置保留,新增以下字段
        "skipLibCheck": true
      }
    }
    
  • 方案2:定向覆盖冲突类型
    如果你需要保留第三方库的类型检查能力,可在项目中新增自定义声明文件覆盖冲突定义,步骤如下:

    1. 在src目录下新建type-override.d.ts文件
    2. 按以下模板修改冲突的类型声明(将示例中的包名、接口名替换为你实际冲突的依赖和属性所属接口):
    declare module '冲突的包名A' {
      // 先导出原有包的所有类型
      export * from '冲突的包名A/dist/index.d.ts'
      // 覆盖冲突的接口定义,调整src属性的类型避免重复冲突
      export interface 冲突属性所属的接口名 {
        src: string | Record<string, any>
      }
    }
    
    1. 将该声明文件路径加入tsconfig.json的include数组即可生效。
  • 方案3:调整svgr插件配置规避冲突
    如果类型冲突来自vite-plugin-svgr生成的SVG模块声明,可修改插件配置调整类型导出规则:

    import { defineConfig } from 'vite'
    import svgr from 'vite-plugin-svgr'
    
    export default defineConfig({
      plugins: [
        svgr({
          // 将SVG导出为默认导出,避免命名导出的src属性和其他声明冲突
          exportAsDefault: true,
          typescriptOptions: {
            exportType: 'default'
          }
        })
      ]
    })
    

附报错截图:
报错截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 16:54:03