如何从命令行检查 TypeScript 代码的语法错误?

How to check TypeScript code for syntax errors from a command line?

我有一个生成 TypeScript 类 的代码,作为 build/test 步骤,我想检查生成的文件的语法正确性。

我看过 TypeScript compiler options 但没有看到这样的选项。

我不想要完整的编译,因为在该构建步骤中无法访问引用的类型(它们位于不同的模块中,稍后将生成的源添加到该模块中)。

更新!在某些情况下,使用编译器选项来包含和检查 JavaScript 可能会让你到达你需要的地方(或者至少足够接近你可以修复你的 JavaScript 代码)......当这不是'无法让您到达您想去的地方,以下答案会有所帮助。

没有选项可以在无法验证类型信息的情况下检查您的文件 - 尽管您可以提供非常松散类型的定义文件以有效地忽略这些模块,例如:

declare var myModule: any;

这将禁止对 myModule 进行任何类型检查,并允许您使用标准 tsc 命令来检查您的文件。

如果只是语法检查,那么您可以使用像 tslint 这样的 linter,它可以从命令行 运行 或通过许多构建工具

首先安装ESLint(你的系统需要安装npm):

npm i -g eslint

执行ESLint检查文件:

eslint file1.ts file2.ts

或:

eslint lib/**

ESLint 支持很多用于更高级案例的选项,check the docs

tsc --noEmit 就是您要搜索的内容。

Do not emit compiler output files like JavaScript source code, source-maps or declarations.

source TSDocs


如果您想要 lint 代码以及检查 CI 上的类型,请使用 tsc --noEmit && eslint