使用 Typescript Compiler API 重写 typescript 文件

exe*_*ecc 7 typescript typescript2.0

我正在尝试使用 Typescript Compiler API 创建一个用于合并 typescript 文件的工具。我想知道有没有办法:

  1. 通过解析 .ts 文件生成 AST 后更改 AST。
  2. 将更改后的 AST 序列化回 .ts 文件

我已经阅读了关于 Compiler API 的文档,但它似乎只涵盖了使用 AST 的只读用例,而我对修改源文件更感兴趣。

提前感谢您的任何帮助。

bas*_*rat 5

通过解析 .ts 文件生成 AST 后更改它。将更改后的 AST 序列化回 .ts 文件

这两个都是发射器插件,您需要添加自定义的transformer. 最好的文档仍在 PR 中https://github.com/Microsoft/TypeScript/pull/13940


can*_*ero 5

这是一个简单的示例,使用转换来遍历和转换 AST,并使用打印机将转换后的 AST 打印回另一个源文件:

这是非常简单的一个:

https://typescript-api-playground.glitch.me/#example=Simple%20Transformation

这是另一个比第一个稍微复杂一点的:

https://typescript-api-playground.glitch.me/#example=Transformation%202

最后一个:https : //typescript-api-playground.glitch.me/#example=Transformation%203

您可以修改并再次运行代码,并创建一个带有示例的 URL,也可以在此处分享以防卡住。

还有一种更简单的编译器 API 方法可能是 ts-simple-ast 项目。