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

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

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

时间:原作者:0个回答

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

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

原作者:
...