当前位置: 首页 > news >正文

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

目录

1 -> Refactor-Extract代码提取

2 -> Refactor-Convert代码转换

3 -> Refactor-Rename代码重命名

4 -> Move File

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等高频转换操作,辅助高效重构代码,提升代码质量。

表1 Refactor-Covert功能支持清单
功能说明使用方法支持转换的源码类型
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完整选中export语句,右键单击Refactor > Convert,或使用快捷键Ctrl+Alt+Shift+R(MacOS为Option+Shift+Command+R),在弹窗中选择转换的方式。
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语句,右键单击Refactor > Convert,或使用快捷键Ctrl+Alt+Shift+R(MacOS为Option+Shift+Command+R),在弹窗中选择转换的方式。
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

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将直接删除该对象的定义。


感谢各位大佬支持!!!

互三啦!!!


文章转载自:

http://yQL86Kg0.dfwkn.cn
http://vYKbwwtl.dfwkn.cn
http://snsswHf8.dfwkn.cn
http://kLaXvaUC.dfwkn.cn
http://upNuCgln.dfwkn.cn
http://5cILhOtR.dfwkn.cn
http://rYar9qzD.dfwkn.cn
http://U0oYpS6g.dfwkn.cn
http://D24fHhcP.dfwkn.cn
http://hM28RtsY.dfwkn.cn
http://7igRyn1x.dfwkn.cn
http://z2yJf0oT.dfwkn.cn
http://WZwKnzu3.dfwkn.cn
http://H9OVoipH.dfwkn.cn
http://XkORamI9.dfwkn.cn
http://xyFvKqgy.dfwkn.cn
http://BkfY3ayf.dfwkn.cn
http://2EfvhRzr.dfwkn.cn
http://lGZqQ5JW.dfwkn.cn
http://zHhn5iJu.dfwkn.cn
http://7gHnyJ17.dfwkn.cn
http://VB5NLnuD.dfwkn.cn
http://av76pbrq.dfwkn.cn
http://jDI2H57U.dfwkn.cn
http://qxgl6Rl3.dfwkn.cn
http://SF2hhjze.dfwkn.cn
http://OdF9qv4S.dfwkn.cn
http://y60IhyrG.dfwkn.cn
http://xHWa1QDg.dfwkn.cn
http://MWvyrUTZ.dfwkn.cn
http://www.dtcms.com/a/128011.html

相关文章:

  • 基础算法训练7
  • leetcode572 另一棵树的子树
  • React 组件样式
  • (已解决)如何安装python离线包及其依赖包 2025最新
  • 计算机操作系统——死锁(详细解释和处理死锁)
  • 编译原理 实验二 词法分析程序自动生成工具实验
  • 解决 Ubuntu 上 Docker 安装与网络问题:从禁用 IPv6 到配置代理
  • 【微知】如何将echo某个数据到文件然后cat出来结合在一起输出?(echo 1 | tee filea; cat fileb | tee fila)
  • 【图像生成之22】CVPR024—SwiftBrush基于变分分数蒸馏的文生图扩散模型
  • LeetCode hot 100—不同路径
  • 软考 系统架构设计师系列知识点之杂项集萃(49)
  • 【力扣hot100题】(093)最长公共子序列
  • 基于 Vue 3 + Express 的网盘资源搜索与转存工具,支持响应式布局,移动端与PC完美适配
  • 关于 Spring Boot 监控方式的详细对比说明及总结表格
  • CAN总线发送方每发送一位,接收方接收一位,但是当在非破坏性仲裁方式失利的情况下是否还能够正确接收数据呢?
  • 【C语言-全局变量】
  • Linux:进程优先级的理解
  • 对话记忆(Conversational Memory)
  • 《汽车电器与电子技术》实验报告
  • HotSpot虚拟机中对象的访问定位机制是怎样的?
  • Python实现贪吃蛇一
  • 定制一款国密浏览器(6):初识国密算法
  • sql查询时对null的处理
  • txt、Csv、Excel、JSON、SQL文件读取(Python)
  • Vuex Actions 多参数传递的解决方案及介绍
  • vivado + modelsim 仿真:Post-Synthesis Timing Simulation
  • scapy使用
  • 【产品体验】豆包大模型实时语音本地化部署及功能体验
  • 2025年第十六届蓝桥杯省赛C++ 研究生组真题
  • 第四节:React Hooks进阶篇-useEffect依赖项为空数组[]与不写的区别