Typescript typscript编译API-更改变量名

Typescript typscript编译API-更改变量名,typescript,typescript-compiler-api,Typescript,Typescript Compiler Api,我认为这很简单,只需更新一个变量名。我找到的所有博客/帖子都在添加/删除节点。我只想更新一个变量名并输出源文件 我不想使用ts变形 我有我的节点(在本例中是一个NodeObject),但正在调用 node.name.text = "testing"; 无法设置只有getter的#的属性文本 这可能吗?我必须使用转换吗?如果是这样的话,则可以链接到具有标识符名称更改的示例 我认为这很简单,只需更新一个变量名 这就是ts变形存在的原因。使用编译器API,您需要编写大量代码来完成

我认为这很简单,只需更新一个变量名。我找到的所有博客/帖子都在添加/删除节点。我只想更新一个变量名并输出
源文件

我不想使用ts变形

我有我的节点(在本例中是一个
NodeObject
),但正在调用

node.name.text = "testing";
无法设置只有getter的#的属性文本

这可能吗?我必须使用转换吗?如果是这样的话,则可以链接到具有标识符名称更改的示例

我认为这很简单,只需更新一个变量名

这就是ts变形存在的原因。使用编译器API,您需要编写大量代码来完成此操作,但使用ts morph,您只需执行
ident.replaceWithText(“newName”)
或使用
ident.rename(“newName”)语言服务重命名即可

要仅更改变量声明的名称标识符,请使用转换API,然后将AST重新打印为字符串。因此,在较低的级别上,使用提供现有变量声明的
factory.updateVariableDeclaration
函数,然后使用
factory.createIdentifier(“yourNewIdentifierName”)
作为
名称
参数。然后,使用打印机API将其打印为字符串(请参见
ts.createPrinter()

如果希望重命名变量声明及其所有用法,则可以使用语言服务进行重命名。首先,编写所有代码以设置语言服务,然后使用
findNameLocations
方法获取所有重命名位置,并使用结果修改文本