我正在尝试使用 compiler api 生成一些 typescript 代码.不幸的是,官方(或任何与此相关的)文档很少,我现在完全陷入了一个非常简单的任务:
我想生成一个简单的函数调用,如 foo()
。仅此而已,一个简单的全局函数调用。
经过长时间的搜索,我走到了这一步:
import ts from 'typescript'
ts.createCall(
ts.createPropertyAccess(
*some expression*,
'foo'
),
undefined, //generics
[], //parameters
);
据我所知,我需要将一个表达式传递给 createPropertyAccess
以成为所访问属性的“所有者”(如 foo 中的
)。但是,在这种情况下,没有“所有者”,因为函数驻留在全局范围内。foo
)。栏
有没有办法生成这样的函数调用?我尝试使用 ts.createOmittedExpression
,但生成了以下代码:
().bar();
最佳答案
在这种情况下,您可以只使用 ts.createIdentifier
。 foo()
中没有属性访问表达式。
const statement = ts.createExpressionStatement(
ts.createCall(ts.createIdentifier("foo"), undefined, undefined)
);
顺便看看我的网站ts-ast-viewer .它现在将显示将在编辑器中创建代码的编译器 API 代码。
关于typescript - 如何使用 Typescript Compiler API 生成全局属性访问表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55211931/