我怀疑如何将Typescript解析为AST。 我的目标是能够计算导入和类声明之间有多少个断行。
我认为可以使用每个语句的开始和结束位置来完成它。但是,事实证明,Typescript解析器会忽略断行。
如果图像不够清晰,我会指出babylon解析器中的 ClassDeclaration 从 116 开始,而在typescript解析器中从 113开始 STRONG>。
我想知道为什么会发生这种情况以及如何使用Typescript解决它或者有什么办法解决这个问题?我正在使用 tslint 创建自定义规则。
Babylon7 AST Parser https://astexplorer.net/#/gist/ffa8dc62cec5bea5a5f76ca978af53b1/d50f63227dec8549a70d6fbb35d4d1aa62b0ea25
答案 0 :(得分:0)
这是预期的。 pos
属性显示最后一个有效标记的结束位置。 node.getStart(sourceFile)
方法是您感兴趣的方法,它将返回起始位置。
我建议使用我的ast查看器(ts-ast-viewer),因为它是TypeScript编译器API专用的,并且将向您显示此信息。