ReSharper 2025.2 Help

TypeScript 的重构

执行重构

  1. 将插入符号放在符号上,选择您想要重构的代码片段,或在工具窗口中选择一个项目。

  2. 执行以下操作之一:

    • 从主菜单中选择 ReSharper | 重构 ,然后选择所需的重构。 此菜单中可用的重构列表取决于当前上下文。 如果 ReSharper 无法为上下文建议任何重构,则整个菜单将被禁用。

    • 在编辑器、 文件结构 窗口或其他 ReSharper 窗口中,右键单击您想要转换的项目,从上下文菜单中选择 重构 ,然后选择所需的重构。

    • 从主菜单中选择 ReSharper | 重构 | 重构此项 ,或按 Control+Shift+R 显示适用的重构列表,然后选择其中一个。 您还可以在选择的上下文菜单中选择 重构

    • 使用分配给特定重构的 默认键盘快捷键 ,或为您喜欢的重构命令 分配自定义快捷键

  3. 如果所选的重构需要用户输入,则会打开重构向导。 请注意,向导的对话框不是模态的,因此您可以在向导打开时编辑代码。

    要回滚重构操作,向导提供了选项  要启用撤销功能,请打开所有有更改的文件进行编辑。 如果您选择此选项,ReSharper 会在新的编辑器选项卡中打开所有修改过的文件,并允许您回滚重构。 在这种情况下,您需要自己保存更改。 如果未选择此选项, ReSharper 会自动保存修改过的文件,而无需打开它们。

  4. 如果重构操作会导致代码冲突(例如重复的名称、可见性冲突等),向导会在应用重构之前的最后一步显示冲突列表。 对于某些冲突,向导还可以建议快速修复。 更多信息请参阅 解决重构中的冲突

在您修改编辑器中的代码后,某些重构会立即可用。 有关更多信息,请参阅 就地重构

复制类型

此重构允许您创建所选类型的副本,并将其放入指定的模块中。

在 TypeScript 中复制类型的重构

介绍领域

此重构允许您基于选定的表达式创建一个新字段,用该表达式或构造函数对其进行初始化,并用新引入的字段引用替换当前类型中表达式的出现。

您还可以使用专用快捷键 Control+Alt+D 调用此重构。

在下面的示例中,我们使用此重构将两处相同字符串替换为一个新的常量字段:

class ErrorHandler { alertError() { alert("Something has failed..."); } logError() { if (typeof window.console != 'undefined') { console.log("Something has failed..."); } } }
class ErrorHandler { private static errorMessage= "Something has failed..."; alertError() { alert(ErrorHandler.errorMessage); } logError() { if (typeof window.console != 'undefined') { console.log(ErrorHandler.errorMessage); } } }

引入类型别名

此重构帮助您为类型组合创建一个类型别名,并用该别名替换当前选定的组合或当前范围内所有类似的组合。

要调用此重构,请选择可以创建别名的类型交集或联合、字面量或其他实体,然后按 Control+Shift+R 或从主菜单中选择 ReSharper | 重构 | 此处重构… ,然后在 重构 弹出窗口中选择 引入类型别名。 如果当前上下文中有多个选定实体的出现,您将能够选择是替换当前实体还是所有实体。

内联类型别名

此重构帮助您移除选定的类型别名,并用其定义替换所有的使用。

要调用此重构,请选择类型别名的声明或使用,然后按 Control+Shift+R 或从主菜单中选择 ReSharper | 重构 | 此处重构… ,然后在 重构 弹出窗口中选择 内联类型别名

引入变量

此重构允许您基于选定的表达式创建一个新的局部变量或常量,用该表达式对其进行初始化,并最终用新引入的变量的引用替换方法中该表达式的所有出现。

您还可以使用专用快捷键 Control+Alt+V 调用此重构。

在下面的示例中,我们使用此重构将同一字符串的两次出现替换为一个变量:

function logError() { alert("Something has failed..."); if (typeof window.console != 'undefined') { console.log("Something has failed..."); } }
function logError() { var message = "Something has failed..."; alert(message); if (typeof window.console != 'undefined') { console.log(message); } }

为子字符串引入变量

此重构可帮助您快速将字符串的一部分移动到单独的变量中。

如果在 ReSharper 选项的 代码编辑 | TypeScript | 检查 页面上选择了 TypeScript 1.4 或更高版本作为语言级别,则重构会为提取的子字符串添加一个新的模板参数。 如果语言级别为 TypeScript 1.3 或更低版本,则使用字符串连接:

重构前

重构后(TypeScript 1.4 或更高版本)

重构后(TypeScript 1.3 或更低版本)

var helloWorld = "Hello, World";
let world = "World"; var helloWorld = `Hello, ${world}`;
var world = "World"; var helloWorld = "Hello, " + world;

内联变量

此重构允许您将代码中变量的所有出现替换为其初始值。 请注意,仅当变量值在初始化后保持不变时,才应应用此重构。

您还可以使用专用快捷键 Control+Alt+N 调用此重构。

在下面的示例中,我们使用此重构将 反转 变量内联。

function reverseString(input) { var reversed = input.split("").reverse().join(""); return reversed; }
function reverseString(input) { return input.split("").reverse().join(""); }

移动到另一个文件

此重构帮助您将选定的类型从当前文件移动到任何现有文件或新文件。 如果您移动到一个新文件,则会自动创建新文件。 如果当前文件中没有更多类型,则可以将其删除。 所有必要的导入都会随类型一起移动。 所有不再需要的导入都会从原始文件中移除。

移动到文件夹

此重构帮助您将一个或多个类型或文件移动到解决方案中另一个项目或文件夹。 如果需要,重构会为您创建新的目标文件夹。 所有移动的类型所需的导入都会在新位置修复。 所有不再需要的导入都会从原始文件中移除。

移至资源

在从 Visual Studio 模板(例如 Apache Cordova)创建的 TypeScript 项目中,ReSharper 允许将字符串字面量移动到 资源文件。 ReSharper 可以选择在所需范围内查找所有相同的字符串,并将它们替换为资源的使用。 要执行此重构,您的项目中需要至少有一个资源文件(通常具有 .resjson 扩展名)。

您还可以使用专用快捷键 F6 调用此重构。

将类型移动到另一个模块

此重构会在选定的类型周围包装一个模块声明。

重命名

TypeScript 支持的最耗时的重构之一。 如果您尝试手动修改符号的名称,可能会导致许多问题。 当您调用 重命名重构 (也可以通过专用快捷键 F2 调用)时,ReSharper 会完成所有检查。 如果没有冲突,所有修改都会顺利完成;否则,您将获得冲突列表,您可以手动解决这些冲突,以确保仅进行必要且适当的更改。

ReSharper:在 TypeScript 中的重命名重构
最后修改日期: 2025年 9月 27日