在IntelliJ IDEA 2025.2.3(旗舰版)中检测TypeScript项目中未使用或仅在测试文件中使用的代码的方法
在IntelliJ IDEA 2025.2.3(旗舰版)中检测TypeScript项目中未使用或仅在测试文件中使用的代码的方法
我之前也碰到过一模一样的问题——IntelliJ默认的未使用符号检测会把测试文件里的引用也算作有效引用,导致那些只在测试里调用的业务代码被“误判”为已使用。折腾了一阵后,终于摸出两个靠谱的解决方法,分享给你:
方法一:通过自定义作用范围一次性批量检测
这是最高效的方式,能一次性找出所有在业务代码里没被用到(仅在测试或完全未使用)的全局函数、类、类成员等:
打开「按名称运行Inspection」工具
可以用快捷键Ctrl+Alt+Shift+I(Windows/Linux),或者通过顶部菜单Analyze -> Run Inspection by Name打开,然后搜索对应的检测项:- 找全局的函数、类等,搜「Unused global symbols」
- 找类的成员函数、属性,搜「Unused member」
自定义排除测试文件的作用范围(核心步骤)
在弹出的运行对话框里,点击「Scope」下拉框旁的三个点(...)进入Scope编辑界面:- 点击左上角的「+」,选择「Local Scope」,给这个Scope起个好记的名字,比如「业务TS代码」
- 在右侧的「Pattern」区域设置规则:
- 先添加包含规则:点击「Include」,输入
file:*.ts(包含所有TS文件) - 再添加排除规则:点击「Exclude」,输入
file:*.test.ts(如果你的测试文件是.spec.ts就改成这个,也可以直接排除整个测试目录,比如file:**/__tests__/*)
- 先添加包含规则:点击「Include」,输入
- 确认后保存这个Scope,回到运行对话框,选择你刚创建的这个Scope。
开始分析并查看结果
点击「OK」启动分析,IntelliJ会只针对你定义的业务代码范围进行检测,并且不会把测试文件里的引用算作有效引用。分析完成后,底部会弹出Inspection结果窗口,你可以在这里筛选不同类型的未使用代码,还能批量处理(比如直接删除)。
方法二:设置实时编辑器高亮,随时看到未使用代码
如果你想在日常编码时,编辑器就实时高亮那些仅在测试里用或完全未使用的代码,可以这么配置:
- 打开
Settings -> Editor -> Inspections(快捷键Ctrl+Alt+S) - 展开「TypeScript」分类,找到「Unused symbols」(对应全局符号)和「Unused member」(对应类成员)
- 对每个检测项,点击「Scope」下拉框,选择你之前自定义的「业务TS代码」Scope
- 点击「Apply」保存设置
之后,编辑器就会实时高亮那些在业务代码里没有被引用的符号——哪怕它们在测试文件里被用到,也会被标记为未使用,完全匹配你的需求。
小提醒
- 如果你有多种测试文件命名规则(比如同时有.test.ts和.spec.ts),在自定义Scope的排除规则里可以用逗号分隔,比如
file:*.test.ts,file:*.spec.ts - 分析完成后,不确定的话可以右键点击某个未使用的符号,选择「Find Usages」再确认一下,避免漏掉动态引用这类IntelliJ可能检测不到的情况




