通常我运行tsc -p ./tsconfig.json
,该类型检查相对于tsconfig的./src
文件夹中的所有文件。
但如果我运行tsc -p ./tsconfig.json src/specific-file.ts
,它会抱怨
错误TS5042:选项"project"不能与命令行上的源文件混合。
因此,如果我删除该选项并运行tsc src/specific-file.ts
,它会检查该文件,但不会使用tsconfig中的任何设置(因为我没有指定tsconfig文件?(。
如何在单个文件上运行tsc
,并使用tsconfig中的设置,否则这些设置将用于整个项目?
除了使用TypeScript编译器API编写自己的命令行工具之外,我不知道还有什么真正好的解决方案。你可以考虑两种更简单的方法:
-
编写一个脚本,生成一个临时
tsconfig.json
文件,扩展原始tsconfig.json
并将files
设置为所需的文件。但是,如果其他文件包含对指定的文件进行类型检查所需的全局声明,则其他文件可能无法加载,因此这种方法可能不起作用。 -
编写一个脚本,在整个项目上运行
tsc
,并过滤输出,如下所示。但是,如果您关心的是性能,那么这也无济于事。
检查以确保您的绝对路径不包含任何空格,如果您仍然收到错误,可能只是因为tsconfig.json
用于配置项目,而命令行参数用于文件。