JavaScript 的重构
执行重构
将插入符号放在符号上,选择您想要重构的代码片段,或在工具窗口中选择一个项目。
执行以下操作之一:
如果所选的重构需要用户输入,则会打开重构向导。 请注意,向导的对话框不是模态的,因此您可以在向导打开时编辑代码。
要回滚重构操作,向导提供了选项  要启用撤销功能,请打开所有有更改的文件进行编辑。 如果您选择此选项,ReSharper 会在新的编辑器选项卡中打开所有修改过的文件,并允许您回滚重构。 在这种情况下,您需要自己保存更改。 如果未选择此选项, ReSharper 会自动保存修改过的文件,而无需打开它们。
如果重构操作会导致代码冲突(例如重复的名称、可见性冲突等),向导会在应用重构之前的最后一步显示冲突列表。 对于某些冲突,向导还可以建议快速修复。 更多信息请参阅 解决重构中的冲突。
在您修改编辑器中的代码后,某些重构会立即可用。 有关更多信息,请参阅 就地重构
引入变量
此重构允许您基于选定的表达式创建一个新的局部变量或常量,用该表达式对其进行初始化,并最终用新引入的变量的引用替换方法中该表达式的所有出现。
您还可以使用专用快捷键 Control+Alt+V 调用此重构。
在下面的示例中,我们使用此重构将同一字符串的两次出现替换为一个变量:
为子字符串引入变量
此重构可帮助您快速将字符串的一部分移动到单独的变量中。
If the ECMAScript 6 is selected as a language level in ReSharper settings, the refactoring will add a new template argument for the extracted substring. 如果语言级别是 ECMAScript5,则使用字符串连接:
重构前 | 重构后(ECMAScript 6) | 重构后(ECMAScript 5) |
|---|---|---|
var helloWorld = "Hello, World";
|
let world = "World";
var helloWorld = `Hello, ${world}`;
|
var world = "World";
var helloWorld = "Hello, " + world;
|
内联变量
此重构允许您将代码中变量的所有出现替换为其初始值。 请注意,仅当变量值在初始化后保持不变时,才应应用此重构。
您还可以使用专用快捷键 Control+Alt+N 调用此重构。
在下面的示例中,我们使用此重构将 反转 变量内联。
移至资源
在由 Visual Studio 模板(例如 Apache Cordova)创建的 JavaScript 项目中,ReSharper 允许将字符串字面量移动到 资源文件中。 ReSharper 可以选择在所需范围内查找所有相同的字符串,并将它们替换为资源的使用。 要执行此重构,您的项目中需要至少有一个资源文件(通常具有 .resjson 扩展名)。
您还可以使用专用快捷键 F6 调用此重构。
重命名
此重构允许您更改解决方案中任何符号或项目的名称。 所有对该符号的引用和使用都会自动更新。
您还可以使用专用快捷键 F2 调用此重构。
您可以使用此重构重命名以下 JavaScript 实体:对象字面量、对象字面量的属性、函数、函数参数、变量