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

TypeScript项目monorepo风格测试目录下ts-jest无法识别类型如何解决

解决方案

你遇到的错误本质是ts-jest默认加载根目录的tsconfig.json,而根目录配置既没有引入jest类型定义,也没有包含tests目录下的测试文件,所以类型检查不通过,按照以下步骤调整即可:


1. 安装必要依赖

首先确保已经安装jest类型声明包:

npm i @types/jest -D
# 或使用yarn/pnpm的对应安装命令

2. 修正根目录tsconfig.json配置

开启复合项目强制要求的声明生成配置:

{
  "compilerOptions": {
    "composite": true,
    "declaration": true, // 复合项目必须开启生成声明文件
    "declarationMap": true // 可选,可提升类型跳转体验
  },
  "include": ["src"]
}

3. 修正tests/tsconfig.json配置

去掉冗余字段,调整路径匹配规则:

{
  "extends": "../tsconfig.json",
  "references": [
    { "path": ".." } // 无需name字段,直接指向根目录配置即可
  ],
  "compilerOptions": {
    "types": ["jest"],
    "rootDir": ".", // 根目录改为当前tests目录,避免引入外层不需要的文件
    "noEmit": true
  },
  "include": ["**/*.test.ts"] // 明确匹配测试文件范围
}

4. 调整jest配置指定tsconfig路径

告诉ts-jest使用tests目录下的配置文件做类型检查:

{
  "jest": {
    "preset": "ts-jest",
    "environment": "node",
    "transform": {
      "^.+\\.tsx?$": ["ts-jest", {
        "tsconfig": "tests/tsconfig.json"
      }]
    }
  }
}

配置完成后可先执行tsc -b tests验证测试文件类型无报错,再执行jest命令即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:36:04