如何使用tsconfig.json中的设置从命令行键入检查单个文件?

tru*_*ktr 8 typescript tsc tsconfig

通常,我运行tsc -p ./tsconfig.json哪种类型的检查文件./src夹中相对于tsconfig的所有文件。

但是如果我跑步tsc -p ./tsconfig.json src/specific-file.ts,它会抱怨

错误TS5042:选项“项目”不能与命令行上的源文件混合。

因此,如果我删除该选项并运行,tsc src/specific-file.ts它将检查文件,但它不使用tsconfig中的任何设置(因为我没有指定tsconfig文件?)。

如何tsc在单个文件上运行并使用tsconfig中的设置,否则它们将在整个项目中使用?

Mat*_*hen 5

除了使用 TypeScript 编译器 API 编写自己的命令行工具之外,我不知道还有什么真正好的解决方案。您可能会考虑两种更简单的方法:

  1. 编写一个脚本来生成一个临时tsconfig.json文件,该文件扩展您的原始文件tsconfig.json并设置files为您想要的文件。但是,如果其他文件包含对指定文件进行类型检查所需的全局声明,则其他文件可能无法加载,因此此方法可能不起作用。

  2. 编写一个在整个项目上运行的脚本tsc并过滤输出,如本答案所示。但是,如果您关心的是性能,那么这将无济于事。

  • 这基本上就是我的想法,是的,我关心的是 git precommit hook 强制输入的性能。现在,我只是对整个项目进行类型检查,但我想如果我提交一个文件,我只需要检查它(它是依赖关系图和全局类型)。 (3认同)

Cod*_*256 -3

检查以确保您的绝对路径不包含任何空格,如果仍然收到错误,则可能只是因为tsconfig.json用于配置项目,而命令行参数用于文件。