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

如何通过Git子模块复用TypeScript核心项目并规避类型检查错误

解决方案

方案1:用TypeScript项目引用(首推)

你的core本身是独立的TypeScript项目,官方推荐用项目引用实现跨项目复用,能让两个项目的编译完全独立,从根源上避免路径冲突问题。

  1. 先在sample/src/core目录下创建专属的tsconfig.json,配置核心编译参数并确保生成类型声明文件:
{
  "compilerOptions": {
    "rootDir": "./src",
    "outDir": "./dist",
    "declaration": true, // 生成.d.ts类型文件
    "module": "ESNext",
    "target": "ES6",
    "strict": true
  },
  "include": ["src/**/*"]
}
  1. 回到示例项目根目录,修改tsconfig.json添加项目引用:
{
  "compilerOptions": {
    "module": "ESNext",
    "target": "ES6",
    "strict": true,
    "baseUrl": "."
  },
  "include": ["src/**/*"],
  "references": [{"path": "./src/core"}] // 引用core项目
}
  1. 编译时使用tsc --build命令,它会自动先编译core生成dist目录,示例项目里直接引用src/core/dist/sample即可,完全不会有路径解析问题。

方案2:配置rootDirs修复路径解析

如果不想折腾项目引用,直接修改示例项目的tsconfig.json,用rootDirs让TypeScript把core的src目录和示例项目的src目录视为同一根目录:

{
  "compilerOptions": {
    "baseUrl": ".",
    "rootDirs": ["./src", "./src/core/src"], // 将这两个目录当作同一根目录处理
    "module": "ESNext",
    "target": "ES6",
    "strict": true
  },
  "include": ["src/**/*"]
}

这样core里写的import src/a,TypeScript会自动在src/core/src目录下查找a.ts,完美适配原有导入路径。

方案3:编译core后引用(兼顾类型提示与跳过检查)

要是你既想跳过core源码的类型检查,又不想丢失类型提示,可以先把core编译成带类型的包:

  1. 进入core目录执行tsc,生成dist目录(包含编译好的JS和.d.ts类型文件)。
  2. 示例项目的tsconfig.json按如下配置:
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@core/*": ["./src/core/dist/*"] // 用别名指向编译后的core
    }
  },
  "include": ["src/**/*", "src/core/dist/**/*.d.ts"], // 引入类型文件
  "exclude": ["src/core/src/**/*"] // 排除core源码
}
  1. 示例项目里用import sample from '@core/sample'引用组件,既不用处理core源码的路径问题,还能正常获得类型提示。

方案4:强制跳过core类型检查(不推荐)

如果完全不在乎类型提示,只想让tsc编译通过,可在tsconfig.json里彻底排除core源码:

{
  "compilerOptions": {},
  "include": ["src/**/*"],
  "exclude": ["src/core/**/*"]
}

但这样示例项目里引用core的地方会报“找不到模块”的类型错误,需要手动加// @ts-ignore忽略,丢失类型支持,因此不建议这么做。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:52:07