1. 立项原因:随着鸿蒙生态的发展,大量现有 Web 前端项目(JS/TS)需要迁移到鸿蒙原生应用,但手动改写为 ArkTS 成本高、易出错。本项目旨在自动化将标准 JavaScript 代码转换为 ArkTS 语法,提升迁移效率。
2. 行业场景:适用于鸿蒙应用开发者、企业存量 H5 项目转鸿蒙 App 的场景,也可用于跨语言代码学习与自动化重构工具链。
点击空白处退出提示
1. 立项原因:随着鸿蒙生态的发展,大量现有 Web 前端项目(JS/TS)需要迁移到鸿蒙原生应用,但手动改写为 ArkTS 成本高、易出错。本项目旨在自动化将标准 JavaScript 代码转换为 ArkTS 语法,提升迁移效率。
2. 行业场景:适用于鸿蒙应用开发者、企业存量 H5 项目转鸿蒙 App 的场景,也可用于跨语言代码学习与自动化重构工具链。
1. 具体功能模块:
· 代码解析模块:基于 AST(抽象语法树)对 JS 源码进行词法/语法分析。
· 语法映射模块:将 JS 中的变量声明、函数定义、类继承、Promise/异步等结构映射到 ArkTS 对应写法。
· 类型推导模块:自动补充 ArkTS 所需的类型标注(如 string、number、自定义接口)。
· 终端 Agent 交互模块:支持命令行输入文件/目录,输出转换后的 .ets 文件。
· 错误提示与回退机制:对无法自动转换的语法给出高亮警告。
2. 主要功能描述:用户输入 jstots input.js -o output.ets,Agent 自动完成转换并输出符合 ArkTS 规范的代码。支持批量处理目录、保留原有注释结构、生成简单的类型声明文件。
设计 AST 遍历与转换规则(利用 @babel/parser 生成 JS AST,自定义访问器改写节点)。
· 实现类型推导算法:基于变量初始化与运行时推断生成标注。
· 开发 CLI 终端入口及文件批量处理逻辑。
2. 技术栈、架构与亮点难点:
· 技术栈:Python(词法规则预处理)+ Node.js(核心转换引擎,利用 Babel)+ Shell 脚本封装。
· 架构:管道式处理(解析 → 映射 → 类型生成 → 输出)。
· 亮点:支持异步函数(async/await)到 ArkTS @async 的自动转换;内置常见 JS 标准库(如 Array.prototype.map)的 ArkTS 等价替换表。
· 难点:处理 JS 动态类型与 ArkTS 静态类型的冲突,通过启发式规则与可选用户交互解决;保留原始代码格式与注释。




评论