Как создать экспортированную константу с инициализатором, используя Typescript AST? - PullRequest
0 голосов
/ 16 февраля 2019

Кратко:

export const abc = 123;

Как сгенерировать такое выражение с помощью AST?

С этим кодом

  return ts.createPropertySignature(
    [ts.createToken(ts.SyntaxKind.ExportKeyword), ts.createToken(ts.SyntaxKind.ConstKeyword)],
    "abc",
    undefined,
    undefined,
    undefined //initializer
  );

У меня есть только

export const abc;

Не знаю, как сделать инициализатор.Нет документации.Google бесполезен.

1 Ответ

0 голосов
/ 17 февраля 2019

Я не думаю, что вы создаете правильные узлы для того, чего вы пытаетесь достичь.Узел подписи свойства создается как часть интерфейса.Например, это создаст подпись свойства:

declare interface T {
  prop: number // props signature for node
}

Если вы хотите создать экспортированную переменную, вам нужно будет создать оператор переменной со списком объявлений.

ts.createVariableStatement(ts.createModifiersFromModifierFlags(ts.ModifierFlags.Export),
    ts.createVariableDeclarationList([
        ts.createVariableDeclaration("abc", undefined, ts.createLiteral(5))
]))

Примечание Откуда я знаю это?Проще говоря, есть визуализатор AST, который может помочь вам определить, какие узлы генерируются для фрагмента кода. Смотрите здесь

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