如何使用 Typescript AST 创建带有初始化器的导出常量?

How to create exported constant with initializer using Typescript AST?

简要说明:

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没用。

我认为您没有为您要实现的目标创建正确的节点。 属性 签名节点作为接口的一部分创建。例如,这将创建一个 属性 签名:

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 可视化器可以帮助你找出一段代码生成了哪些节点。 See here