Какие подходы обхода через Typescript AST дают что? - PullRequest
0 голосов
/ 15 октября 2019

Я начал экспериментировать с компилятором Typescript, особенно с использованием оболочки ts-morph. В настоящее время я пытаюсь пройти через AST исходного файла, чтобы вывести определенные виды узлов и их свойства, и заметил, по крайней мере, три возможности прохождения соответствующего AST, которые все дают разные результаты:

  • SourceFile.getChildSyntaxListOrThrow().getChildren().forEach(...) в сочетании с рекурсивным node.getChildren().forEach(...) вызовом, который, по-видимому, является единственным подходом для получения пустяков и комментариев.
  • SourceFile.getChildren().forEach(...) sans .getChildSyntaxListOrThrow()
  • SourceFile.forEachDescendant(...) без необходимостивызвать обработчик visitNode для дочернего узла
  • SourceFile.forEachChild(...), который не дает ключевых слов

К сожалению, я не могу понять точную разницу, чтобы полностью понять, какой подход лучше всего в какомкейс. Итак, вопрос в том, «какой подход к обходу через Typescript AST дает что?»

...