【发布时间】:2018-05-29 11:25:52
【问题描述】:
指的是 TS 类型检查器中的符号,而不是 ES6 符号
给定 TypeScript AST 中的标识符节点,我可以使用 typeChecker.getSymbolAtLocation(identNode)。如何检查该符号是否在全局范围内而不是在外部模块中声明?
我正在编写一个语言服务插件,每次某些函数引用外部声明的值时都必须显示警告。它们可以引用本地声明的变量和全局变量,但不能来自外部模块。
我不确定是否需要使用getDeclarations()。我觉得这种信息可能会在ts.SymbolFlags 中编码,但我无法弄清楚所有的标志。例如,Transient 标志是什么意思?
【问题讨论】:
-
你有没有想过如何做到这一点?
-
我最接近的在下面的评论中有详细说明:stackoverflow.com/questions/50574131/…
标签: typescript typescript-compiler-api