1
我想獲得鏈接到單個對象(從根節點連接的樹)的定義typescript文件的語法樹,我無法通過ts.forEachChild()
傳遞另一個對象。我怎樣才能做到這一點? P.S. - 基本上我最終想得到一個抽象的語法樹對象。我可以修改定義打字稿文件(d.ts)titsforEachChild()從打字稿服務傳遞另一個對象作爲其參數?
我想獲得鏈接到單個對象(從根節點連接的樹)的定義typescript文件的語法樹,我無法通過ts.forEachChild()
傳遞另一個對象。我怎樣才能做到這一點? P.S. - 基本上我最終想得到一個抽象的語法樹對象。我可以修改定義打字稿文件(d.ts)titsforEachChild()從打字稿服務傳遞另一個對象作爲其參數?
從我知道打字稿解析器提供了一個函數,它可以爲您生成一個AST對象。你可以查詢更多的細節here。如果你想通過這個ast,你可以使用像tspoon這樣的項目(無恥的插件)來寫一個訪問者。您也可以查看tspoon如何使用createSourceFile。
var ast = ts.createSourceFile('foo.ts', sourceCode, ts.ScriptTarget.ES5, true);
//carefule, parseDiagnostics is an internal key and may break in the future.
if (ast['parseDiagnostics'].length > 0) {
return ast['parseDiagnostics'];
}
// code which uses the AST