【问题标题】:TypeScript API type checking on modified source file对修改后的源文件进行 TypeScript API 类型检查
【发布时间】:2020-11-27 23:30:03
【问题描述】:

所需的解决方案

我正在寻找对SourceFile修改 AST 进行类型检查的最有效方法。

不需要的解决方案

想将修改后的SourceFile 的 AST 序列化/发送为文本,然后将文本解析回新的 SourceFile


我知道BuilderProgram 可用于增量构建Program [1]。但是,除了处理文本范围更改之外,我还没有看到任何更新 SourceFile 的方法。这似乎非常消耗资源,因为我已经准备好实际修改后的 AST。

编译器 API 文档

https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API


[1]https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#writing-an-incremental-program-watcher

【问题讨论】:

    标签: typescript api typescript-compiler-api


    【解决方案1】:

    看我的回答here

    TypeScript 编译器不是为这种情况设计的。类型检查发生在转换之前,因此类型检查器通常假定源文件文本与 AST 同步。这可能会在未来发生变化,但这是当前的状态。

    因此,为了使代码可靠,您必须获取 AST 当前状态的相应源文件文本。不幸的是,最简单的方法是使用打印机 (ts.createPrinter) 打印出 AST 的最终状态,然后重新解析源文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-26
      • 1970-01-01
      • 1970-01-01
      • 2021-05-02
      • 2019-01-19
      • 2022-01-06
      • 1970-01-01
      相关资源
      最近更新 更多