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

为何.test.ts文件会触发@typescript-eslint/parser的"parserOptions.project"配置错误?

解决.test.ts文件的ESLint解析错误问题

这个错误的根源很明确:你的tsconfig.json把测试文件(src/__tests__目录和所有.test.ts文件)排除在了编译范围外,但ESLint的@typescript-eslint/parser依赖TypeScript的配置来做类型检查——当它处理测试文件时,发现这些文件不在tsconfig的包含列表里,就会抛出这个匹配错误。

下面是两种干净的解决办法,你可以根据自己的项目需求选择:

方案一:创建独立的测试TS配置文件(推荐)

这种方式能保持主TS配置的纯净,同时给测试文件单独指定规则:

  1. 在项目根目录新建tsconfig.test.json文件,内容如下(继承主配置并调整测试相关的包含/排除规则):
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    // 可以在这里给测试文件单独加配置,比如关闭某些严格检查
    "noUnusedParameters": false
  },
  "include": ["src/__tests__", "**/*.test.ts"],
  "exclude": ["node_modules", "dist", "coverage"]
}
  1. 修改你的.eslintrc.js,让ESLint同时识别主配置和测试配置:
module.exports = {
  // ...其他配置不变
  parserOptions: {
    sourceType: 'module',
    // 改成数组,包含两个配置文件
    project: ['tsconfig.json', 'tsconfig.test.json'],
    tsconfigRootDir: './',
  },
  // ...其他配置不变
}

方案二:调整主tsconfig的排除规则

如果你不介意主TS配置包含测试文件,可以直接修改tsconfig.json:

  • 把exclude数组里的"src/__tests__", "**/*.test.ts"移除
  • 确保include数组包含"src/**/*"(这样会自动包含所有src下的.ts和.test.ts文件)

不过这种方式会让测试文件参与主编译流程,可能不是你想要的,所以更推荐方案一。

修改完成后,记得重启你的ESLint服务(比如VSCode的ESLint插件),或者运行eslint src/__tests__/*.test.ts命令验证错误是否消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 22:17:44