2016-04-08 8 views
3

Typescriptが完全にオープンソースになっていることが知られています。これはTyescriptで入手できます。 Typescriptコードを入力として取得し、指定されたコードのASTを出力するアプリケーションを構築しています。入力TypescriptコードのAST(抽象構文木)を抽出し、それをコンパイルしてJavascriptに変換するのではなく、適切な方法を提供してください。オープンソースTypescriptコンパイラコードを使用して、与えられたTypescriptコードのASTを抽出する方法は?

答えて

4

Basicコード:あなたが提供するのであれば

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だろう。

私がちょうど示したものを超えてすべてを理解することは、多くの仕事です。 this work in progressに目を通したり貢献したりすることがより有益な場合があります。

+0

{/ *コンパイラのオプションはここにあります* /}は分かりませんでした。その意味は何ですか? –

+0

@AhmedRaza tsconfig.jsonにあるようなコンパイラオプション。型は 'ts.CompilerOptions'になります。私は私の答えを更新します。 –

+0

それに関連するすべての例を共有してください。 –

関連する問題