我想将TypeScript项目解析为AST。如何将TypeScript代码解析为AST
我可以通过解析单个文件:
import ts = require("typescript");
var fs = require('fs');
var util = require('util');
const ast = ts.createSourceFile('sample.ts', fs.readFileSync('sample.ts').toString(), ts.ScriptTarget.ES6, true);
console.log("AST:"+util.inspect(ast));
我甚至可以通过环中的文件和筛选文件通过扩展并运行上述代码,以生成AST。
但是我想解析整个项目,以便在AST中保留关系(如导入)。
例如:
如果a.ts是参考从b.ts变种x作为如下:
a.ts:
var y = x;
b.ts:
var x = 5;
在这种情况下,.ts中x的签名应该解析为:b.ts.x或等价物。
我只是想在ASTS中解决所有这些关系,因为我一个接一个地解析.ts文件。