typescript - 抽象语法树如何使用开放源代码编译器代码提取给定的Typescript代码?

  显示原文与译文双语对照的内容
106 5

据大家所知,打字是完全开源的。 可以在 Tyescript 提供。 我正在构建一个应用程序,它将获取Typescript代码作为输入,并输出给定代码的AST 。 提供一种适当的方法来提取输入文本编码代码,而不是将它的转换为( 抽象语法树) 并将它的转换为 Javascript 。

时间: 原作者:

65 3

基本代码:


const fileNames = ["C:MyFile.ts"];


const compilerOptions: ts.CompilerOptions = {


//compiler options go here if any...


//look at ts.CompilerOptions to see what's available


};


const program = ts.createProgram(fileNames, compilerOptions);


const typeChecker = program.getTypeChecker();


const sourceFiles = program.getSourceFiles();



sourceFiles.filter(f =>/MyFile.ts$/.test(f.fileName)).forEach(sourceFile => {


 ts.forEachChild(sourceFile, node => {


 const declaration = node as ts.Declaration;


 if (declaration.name) {


 console.log(declaration.name.getText());


 }


 });


});



因此,如果你提供了 C:MyFile.ts,则为:


class MyClass {}


interface MyInterface {}



它将输出 MyClassMyInterface

除了我刚才展示的东西之外,我还是做了很多工作。 对于你来说,查看和/或者帮助进行这项工作可以能更有帮助。

原作者:
...