【发布时间】:2019-02-23 05:00:26
【问题描述】:
我对如何将 Typescript 解析为 AST 有疑问。 我的目标是能够计算导入和类声明之间有多少断线。
我认为可以使用每个语句的开始和结束位置来做到这一点。但是,事实证明 Typescript 解析器忽略了断线。
如果图像不够清晰,我会指出巴比伦解析器中的 ClassDeclaration 从 116 开始,而在 typescript 解析器中从 113 开始强>。
我想知道为什么会发生这种情况以及如何使用 Typescript 解决它,或者有任何解决方法吗?我正在使用 tslint 创建自定义 Rule。
Typescript AST 解析器 https://astexplorer.net/#/gist/ffa8dc62cec5bea5a5f76ca978af53b1/306e2bd99d0c2851e41933a2df989ae36a2f4b73
Babylon7 AST 解析器 https://astexplorer.net/#/gist/ffa8dc62cec5bea5a5f76ca978af53b1/d50f63227dec8549a70d6fbb35d4d1aa62b0ea25
【问题讨论】:
-
对我来说听起来像是 TS 解析器中的一个错误。可能最好提交错误。
-
@loganfsmyth 谢谢,我已经等了一段时间没有答案,也许你是对的。
标签: parsing babeljs abstract-syntax-tree tslint typescript-compiler-api