gpt4 book ai didi

typescript - 如何从 AST typescript 解析器生成代码?

转载 作者:行者123 更新时间:2023-12-03 14:31:21 27 4
gpt4 key购买 nike

我看完后Using the Compiler API文章,我可以从字符串代码中获取 AST。
但是当我尝试生成代码时(通过 escodegen)来自 AST (不转译)到代码 我有一个错误:

Unknown node type: undefined
有没有办法为代码生成 ast?
import * as fs from "fs";
import escodegen from "escodegen";
import * as ts from "typescript";

const code = `
function foo() { }
`;

const node = ts.createSourceFile("x.ts", code, ts.ScriptTarget.Latest);

console.log({ node });

const x = escodegen.generate(node);

console.log({ x });
codesandbox.io

最佳答案

您可以通过 createPrinter 来做并通过 nodeprintNode .
这里的工作示例:

const code = `
function foo() { }
`;

const node = ts.createSourceFile("x.ts", code, ts.ScriptTarget.Latest);
const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });

const result = printer.printNode(ts.EmitHint.Unspecified, node, node);
console.log(result); // function foo() { }
codesandbox

关于typescript - 如何从 AST typescript 解析器生成代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65213952/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com