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

TypeScript仅编译src文件夹时遇TS6059错误的解决咨询

解决TypeScript仅编译src目录、排除test文件的问题

核心问题原因

TypeScript编译器默认会包含项目根目录下所有.ts/.tsx文件(匹配**/*),即便你设置了rootDir,只要test目录下的文件被纳入编译范围,就会因为不在rootDir下触发TS6059错误,同时被编译输出。

直接解决方案:配置include和exclude字段

修改你的tsconfig.json,明确指定要编译的文件范围,同时排除test目录:

{
  "compilerOptions": {
    "rootDir": "./src",
    "outDir": "./dist",
    // 保留你原有的其他编译配置,比如"target": "ESNext", "module": "CommonJS"等
  },
  "include": ["./src/**/*"],
  "exclude": ["./test/**/*"]
}
  • include: ["./src/**/*"]:告诉编译器只处理src目录下所有子目录和文件
  • exclude: ["./test/**/*"]:明确排除test目录下的所有文件,避免被编译或触发错误

配置完成后运行tsc,dist目录只会生成src对应的编译产物,test目录不会产生js文件,TS6059错误也会消失。

进阶需求:保留test文件的类型检查但不输出

如果你希望test文件能被TypeScript做类型检查,但不需要生成编译产物,可以单独创建一个针对test的配置文件tsconfig.test.json:

{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "noEmit": true // 仅做类型检查,不生成任何输出文件
  },
  "include": ["./test/**/*"]
}

之后:

  • 运行主编译:tsc(仅处理src,输出到dist)
  • 检查test文件类型:tsc --project tsconfig.test.json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 04:05:59