tsconfig.json中include配置"src"是否递归包含所有.ts文件?
问题
配置如下的tsconfig.json是否会递归包含src/下所有.ts文件?
"include": [ "src" ]
官方文档及手册指出需要使用通配符表达式src/**/*,但通过GitHub示例项目测试发现,将include从src/**/*改为src后,tsc --listFiles输出完全一致。已合并的PR#11495可解释该结果,但文档未更新此行为。想确认src是否与src/**/*等价?
回答
是的,在当前TypeScript的实现中,"src" 和 "src/**/*" 在include配置里的效果完全等价,都会递归包含src/目录下所有符合TypeScript默认识别规则的文件(比如.ts、.tsx、.d.ts等)。
背后的原因是TypeScript合并PR#11495之后,调整了include配置的解析逻辑:当你指定一个纯目录路径(不带任何通配符)时,编译器会自动递归遍历该目录下的所有子目录,并纳入所有符合条件的文件,行为和显式添加/**/*通配符完全一致。
目前官方文档还没有同步更新这个行为,属于文档滞后问题。你通过tsc --listFiles命令得到的一致输出,也直接验证了这两个配置的等价性。
内容的提问来源于stack exchange,提问作者pointyhat
相关产品推荐
相关产品推荐

