如何在打字稿转换器中创建 const 赋值?

How can I create a const assignment in a typescript transformer?

我可以用这段代码创建变量赋值:

ts.createVariableStatement(undefined, 
     [ts.createVariableDeclaration('a', undefined, 
      ts.createStringLiteral('42'))])

/// yields: var a = 42

但是我无法创建 const 赋值。我很确定它应该像这样工作:

ts.createVariableStatement([ts.createModifier(ts.SyntaxKind.ConstKeyword)], 
     [ts.createVariableDeclaration('a', undefined, 
      ts.createStringLiteral('42'))])

但这会产生错误:

[!] Error: Unexpected keyword 'var'

由于该错误,没有发出 javascript。错误信息也很混乱。

试试这个:

ts.createVariableStatement(
      [],
      ts.createVariableDeclarationList(
        [
          ts.createVariableDeclaration(
            'a',
            undefined,
            ts.createStringLiteral('42'),
          ),
        ],
        ts.NodeFlags.Const,
      ),
    )

基于this answer.