通过 TypeScript AST 中的标识符解析原始节点

Resolve original node by Identifier in TypeScript AST

我正在遍历 Typescript AST 并收集一些数据。

而当我遇到对变量(Identifier节点)的引用时,我实际上想要获取原始节点(例如VariableDeclaration)。

我该如何解决? 现在我唯一能想到的就是从根开始再次遍历AST并尝试找到它但是感觉很hack...

Typescript 是否提供某种方法?

好的,这恰好是一项非常简单的任务:

const originalNode = checker.getSymbolAtLocation(node);

就是这样!

originalNode.valueDeclaration 中我们现在有了原始节点。