【HarmonyOS Next之旅】DevEco Studio使用指南(十三) -> ArkTS/TS代码重构

目录

[1 -> Refactor-Extract代码提取](#1 -> Refactor-Extract代码提取)

[2 -> Refactor-Convert代码转换](#2 -> Refactor-Convert代码转换)

[3 -> Refactor-Rename代码重命名](#3 -> Refactor-Rename代码重命名)

[4 -> Move File](#4 -> Move File)

[5 -> Safe Delete](#5 -> Safe Delete)


1 -> Refactor-Extract代码提取

在编辑器中支持将函数内、类方法内等区域代码块或表达式,提取为新方法/函数(Method)、常量(Constant)、接口(Interface)、变量(Variable)或类型别名(Type Alias)。准确便捷的将所选区域代码从当前作用域内进行提取,提升编码效率。选中所需要提取的代码块,右键单击Refactor,选择需要提取的类型。

说明

Refactor-Extract代码提取为类型别名(Type Alias)能力仅TS语言支持。

方法/函数(Method)支持选中代码块或完整语句进行提取:

在ArkTS语言中,支持将组件调用代码块提取为@Builder装饰器装饰的方法,组件属性调用表达式可提取为@Styles或@Extend装饰器装饰的方法。

使用方式 :选中需要提取的组件或属性,右键单击Refactor ,选择Extract Method...,组件私有属性可提取为@Extend装饰的方法,通用属性可提取为@Styles或@Extend装饰的方法。

常量(Constant)支持选中单行表达式进行提取:

接口(Interface)支持选中对象自变量进行提取:

支持选中表达式提取为变量(Variable):

2 -> Refactor-Convert代码转换

编辑器内提供Convert重构能力,支持Convert between named imports and namespace imports等高频转换操作,辅助高效重构代码,提升代码质量。

|-----------------------------------------------|---------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|
| 功能 | 说明 | 使用方法 | 支持转换的源码类型 |
| Convert to class | 将JS源码中的function转换为符合ES6标准的类 | 点击或选中function名,右键单击Refactor > Convert,或使用快捷键Ctrl+Alt+Shift+R(MacOS为Option+Shift+Command+R),在弹窗中选择转换的方式。 说明 若当前工程中已引用该方法,执行Convert to class后,在Find Usages中可查看引用的具体位置,点击Do Refactor可忽略冲突并执行转换;也可以逐条修改引用位置的代码后,重新执行上述操作。 | JS |
| Convert to anonymous function | 将箭头函数转换为匿名函数 | 选中箭头函数赋值变量,右键单击Refactor > Convert,或使用快捷键Ctrl+Alt+Shift+R(MacOS为Option+Shift+Command+R),在弹窗中选择转换的方式。 | JS/TS |
| Convert to named function | 将箭头函数转换为普通函数 | 选中箭头函数赋值变量,右键单击Refactor > Convert,或使用快捷键Ctrl+Alt+Shift+R(MacOS为Option+Shift+Command+R),在弹窗中选择转换的方式。 | JS/TS/ArkTS |
| Convert to arrow function | 将匿名函数转换为箭头函数 | 选中匿名函数赋值变量,右键单击Refactor > Convert,或使用快捷键Ctrl+Alt+Shift+R(MacOS为Option+Shift+Command+R),在弹窗中选择转换的方式。 | JS/TS/ArkTS |
| Convert default export to named export | 支持named export和default export相互转换 | 完整选中export default语句,右键单击Refactor > Convert,或使用快捷键Ctrl+Alt+Shift+R(MacOS为Option+Shift+Command+R),在弹窗中选择转换的方式。 | JS/TS/ArkTS |
| Convert named export to default export | 支持named export和default export相互转换 | 完整选中export语句,右键单击Refactor > Convert,或使用快捷键Ctrl+Alt+Shift+R(MacOS为Option+Shift+Command+R),在弹窗中选择转换的方式。 | JS/TS/ArkTS |
| Convert named imports to namespace import | 支持在命名import和命名空间import形态间转换 | 完整选中import语句,右键单击Refactor > Convert,或使用快捷键Ctrl+Alt+Shift+R(MacOS为Option+Shift+Command+R),在弹窗中选择转换的方式。 | JS/TS/ArkTS |
| Convert namespace import to named imports | 支持在命名import和命名空间import形态间转换 | 完整选中命名空间import语句,右键单击Refactor > Convert,或使用快捷键Ctrl+Alt+Shift+R(MacOS为Option+Shift+Command+R),在弹窗中选择转换的方式。 | JS/TS/ArkTS |
| Convert to template string | 将字符串转换为模板字面量 | 选中字符串或完整表达式,右键单击Refactor > Convert,或使用快捷键Ctrl+Alt+Shift+R(MacOS为Option+Shift+Command+R),在弹窗中选择转换的方式。 | JS/TS/ArkTS |
| Convert to optional chain expression | 将判空逻辑转换为可选链式调用 | 选中连续判空表达式,右键单击Refactor > Convert,或使用快捷键Ctrl+Alt+Shift+R(MacOS为Option+Shift+Command+R),在弹窗中选择转换的方式。 | JS/TS/ArkTS |
[表1 Refactor-Covert功能支持清单]

3 -> Refactor-Rename代码重命名

代码编辑支持Rename功能,可以快速更改变量、方法、对象属性等相关标识符及文件、模块的名称,并同步到整个工程中对其进行引用的位置。

使用方式 :选中需要重新命名的标识符(变量、类、接口、自定义组件等),右键单击Refactor ,选择Rename...( 或使用快捷键Shift+F6) ,在弹框中输入新的标识符名称,并在Scope 中选择替换的范围,点击Refactor完成重新命名。

代码编辑支持筛选并过滤不需要rename的引用位置。在Rename... 弹窗中点击Preview ,在弹出预览窗口中,用户选中无需Rename的选项,单击右键菜单Exclude /Remove 进行过滤/删除,完成筛选后点击左下角Do Refactor,重新执行Rename操作。

说明

若ArkTS文件中存在C++接口调用,使用Rename进行重命名时,C++文件中涉及的函数名也会被重命名。

4 -> Move File

在文件中单击右键,选择Refactor > Move File... ,在弹窗中输入或点击**...** 选择指定的目录,点击Refactor ,可将当前文件移动至该目录下。勾选Search for references ,可查找并更新工程中对该文件的引用;勾选Open in editor,可在编辑器中查看移动的文件。

5 -> Safe Delete

编辑器支持Safe Delete功能,帮助您安全地删除代码中的标识符对象(变量、函数或类等)或删除指定文件。在删除前,编辑器将先在代码中搜索对该对象的引用,如果存在引用,编辑器将提示您进行必要的检查和调整。

使用方式: 在编辑器内选中需要删除的标识符对象或在工程目录选择待删除的文件,右键单击Refactor ,选择Safe Delete ,单击OK将自动检查当前对象在代码中被引用的情况,点击View Usages 可查看具体使用的代码内容,点击Delete Anyway将直接删除该对象的定义。


感谢各位大佬支持!!!

互三啦!!!

相关推荐
2503_9284115634 分钟前
10.23 @Observed深层监听
华为·harmonyos·鸿蒙
KongHen39 分钟前
UTS编写字符串编解码/加密插件(安卓及鸿蒙端)
前端·harmonyos
做运维的阿瑞1 小时前
鸿蒙6.0技术解析:五大行业迎来的智能化革命
人工智能·harmonyos
鸿蒙Jy1 小时前
一篇文章带你理解什么是鸿蒙开发中V1&&V2装饰器
harmonyos
SunkingYang1 小时前
C++变量与函数命名规范技术指南 (基于华为编码规范与现代C++最佳实践)
c++·华为·编码规范·命名规则·命名规范·函数名字·成员变量
王嘉俊9252 小时前
HarmonyOS 项目入门:构建跨设备智能应用的强大框架
华为·harmonyos
Francek Chen2 小时前
【HarmonyOS 6 特别发布】鸿蒙 6 正式登场:功能升级,构建跨设备安全流畅新生态
人工智能·华为·harmonyos·harmonyos 6
王嘉俊9252 小时前
HarmonyOS 分布式与 AI 集成:构建智能协同应用的进阶实践
人工智能·分布式·harmonyos
The 旺3 小时前
【案例实战】HarmonyOS分布式购物车:多设备无缝协同的电商体验
分布式·wpf·harmonyos
爱笑的眼睛113 小时前
HarmonyOS分布式Kit:解锁跨设备协同开发的无限可能
华为·harmonyos