我想构建一个工具来对打字稿代码进行转换,并将其作为打字稿(而不是JavaScript)发出,作为现有代码库一次性升级路径的一部分。这可能吗?如果可以,怎么办?我没有找到关于编译器API的全面而清晰的参考。任何引用或实际代码的指针都将不胜感激。
答案 0 :(得分:2)
您可以执行以下操作:
ts.createSourceFile
解析所有源文件-为每个文件创建AST / ts.SourceFile
。ts.transform
转换每个源文件。为此提供您要使用的转换。ts.createPrinter
创建打印机并打印出转换后的源文件。我的答案here中包含一些示例代码。
替代
要注意上述解决方案的重要一点是,当打印机打印AST时,大部分时候将以自己的格式打印。
如果您要维护文件的格式,则可能需要执行以下操作:
FileTextChanges
。替代2
由于您只能在代码库中执行一次此操作,因此您可以使用我的库ts-morph来节省大量时间。