如何通过Typescript编译器API检查符号是否是全局的?

时间:2018-05-28 22:35:19

标签: typescript typescript-compiler-api

指TS标签中的符号,而不是ES6符号

给定TypeScript AST中的标识符节点,我可以typeChecker.getSymbolAtLocation(identNode)。如何检查该符号是否在全局范围内声明而不是外部模块?

我正在编写一个语言服务插件,每次某些函数引用外部声明的值时都必须显示警告。他们被允许引用本地声明的变量和全局变量,但没有外部模块。

我不确定是否需要使用getDeclarations()。我觉得这种信息可能会在ts.SymbolFlags内编码,但我无法弄清楚所有的旗帜。例如,Transient标志是什么意思?

1 个答案:

答案 0 :(得分:0)

全局符号将包含undefined .parent

符号是否为瞬态是一个实施细节,您不必担心