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

Posted

技术标签:

【中文标题】如何从命令行检查 TypeScript 代码中的语法错误?【英文标题】:How to check TypeScript code for syntax errors from a command line? 【发布时间】:2017-05-23 09:53:54 【问题描述】:

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

我查看了TypeScript compiler options,但没有看到这样的选项。

如何检查语法?

我正在寻找一个可以从 Maven 运行的工具,最好是一个 Maven 插件或命令行工具。

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

【问题讨论】:

【参考方案1】:

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

不要发出编译器输出文件,如 javascript 源代码、源映射或声明。

source TSDocs


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

source *** comment

【讨论】:

【参考方案2】:

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

npm i -g eslint

执行 ESLint 检查文件:

eslint file1.ts file2.ts

或:

eslint lib/**

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

【讨论】:

【参考方案3】:

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

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

declare var myModule: any;

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

【讨论】:

我认为这是关于编译错误的。我只需要语法检查——即结构、关键字、括号等。只是 AST。这可以在没有类型信息的情况下完成。【参考方案4】:

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

【讨论】:

根据他们的github page 看来,TSLint 将在 2019 年被弃用。显然,ESLint 和 @typescript-eslint/eslint-plugin 应该可以解决问题。 现在已弃用 code.visualstudio.com/api/advanced-topics/…

以上是关于如何从命令行检查 TypeScript 代码中的语法错误?的主要内容,如果未能解决你的问题,请参考以下文章

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

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

在 Git 中,你如何检查你从命令行推送到 Github 中的哪个 repo?

如何将三万行代码从 Flow 移植到 TypeScript?

如何将三万行代码从Flow移植到TypeScript?

如何使用 ESLint 检查 React/Typescript 项目中的 prop 错误?