Как проверить, является ли символ глобальным с помощью API компилятора Typescript? - PullRequest
0 голосов
/ 29 мая 2018

относится к символам в проверщике типов TS, а не к символам ES6

Учитывая идентификатор узла в TypeScript AST, я могу сделать typeChecker.getSymbolAtLocation(identNode).Как проверить, объявлен ли этот символ в глобальной области видимости, а не во внешнем модуле?

Я пишу плагин языковой службы, который должен отображать предупреждение каждый раз, когда определенные функции ссылаются на объявленные извне значения.Им разрешено ссылаться на локально объявленные переменные и глобальные переменные, но ничего из внешних модулей.

Я не уверен, нужно ли мне использовать getDeclarations() или нет.Я чувствую, что такого рода информация может быть закодирована в ts.SymbolFlags, но я не могу понять все флаги.Например, что означает флаг Transient?

1 Ответ

0 голосов
/ 29 мая 2018

Глобальный символ будет иметь undefined .parent.

Независимо от того, является ли символ временным, это деталь реализации, о которой вам не нужно беспокоиться о

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...