TypeScript API 对修改后的源文件进行类型检查
TypeScript API type checking on modified source file
期望的解决方案
我正在寻找对 SourceFile
的 修改后的 AST 进行 类型检查 的最有效方法。
不需要的解决方案
我不想serialize/emit修改SourceFile
的AST到文本,然后将文本解析回新的SourceFile
.
我知道 BuilderProgram
可用于逐步构建 Program
[1]。但是,除了处理文本范围更改外,我还没有看到任何更新 SourceFile
的方法。这似乎非常耗费资源,因为我已经准备好实际修改的 AST。
编译器API文档
https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API
查看我的回答。
TypeScript 编译器不是为这种情况设计的。类型检查发生在转换之前,因此类型检查器通常假定源文件文本与 AST 同步。这可能会在未来发生变化,但这是目前的情况。
所以为了代码的可靠性,必须针对AST的当前状态获取对应的源文件文本。不幸的是,最简单的方法是使用打印机 (ts.createPrinter
) 打印出 AST 的最终状态然后重新解析源文件的不受欢迎的解决方案。
期望的解决方案
我正在寻找对 SourceFile
的 修改后的 AST 进行 类型检查 的最有效方法。
不需要的解决方案
我不想serialize/emit修改SourceFile
的AST到文本,然后将文本解析回新的SourceFile
.
我知道 BuilderProgram
可用于逐步构建 Program
[1]。但是,除了处理文本范围更改外,我还没有看到任何更新 SourceFile
的方法。这似乎非常耗费资源,因为我已经准备好实际修改的 AST。
编译器API文档
https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API
查看我的回答
TypeScript 编译器不是为这种情况设计的。类型检查发生在转换之前,因此类型检查器通常假定源文件文本与 AST 同步。这可能会在未来发生变化,但这是目前的情况。
所以为了代码的可靠性,必须针对AST的当前状态获取对应的源文件文本。不幸的是,最简单的方法是使用打印机 (ts.createPrinter
) 打印出 AST 的最终状态然后重新解析源文件的不受欢迎的解决方案。