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

利用 i2c 快速从 Interface 生成 Class

利用 i2c 快速从 Interface 生成 Class(支持 TS & ArkTS)

在日常 TypeScript 或 ArkTS 开发中,需要根据 interface 定义手动实现对应的 class,这既重复又容易出错。分享一个命令行工具 —— interface2class,简称 i2c,可以自动完成class生产。


🔧 工具简介

  • 名称interface2class(i2c)
  • 作用:根据 .ts.ets 文件中的 interface 自动生成对应的 class 实现
  • 适用语言:TypeScript、ArkTS
  • 项目地址:https://github.com/HarmonyOS-Next/interface2class

📦 安装方式

推荐使用全局安装:

npm install -g interface2class

⚙️ 使用示例

假设有一个 ArkTS 的接口文件 message.ets,内容如下:

export interface Message {id: number;title: string;content: string;send(): void;
}

运行以下命令:

i2c ./message.ets

即可自动生成一个 message.ts 文件,内容如下:

export class MessageImpl implements Message {id: number;title: string;content: string;constructor() {this.id = 0;this.title = '';this.content = '';}send(): void {throw new Error("Method not implemented.");}
}

非常适合快速搭建原型、数据模型、Mock 类等。


❗ 遇到的问题:EPERM 权限错误

在安装时,我遇到了如下报错:

npm ERR! code EPERM
npm ERR! syscall mkdir
npm ERR! path D:\chang\dev_tools\DevEco Studio\tools\node\node_modules\interface2class
npm ERR! errno -4048
npm ERR! Error: EPERM: operation not permitted, mkdir ...

🛠️ 原因分析

这是 Windows 系统下常见的 权限不足 问题,主要原因可能包括:

  • DevEco Studio 自带 Node 环境为受限目录,无法写入
  • 当前终端未以管理员权限运行
  • 系统安全软件(如杀毒软件)拦截

✅ 解决方法

采用了以下方案成功解决:

DevEco Studio 安装目录中 node_modules 设置为“可修改”权限。

或者也可以选择:

  • 右键 PowerShell / CMD → 以管理员身份运行

  • 或者使用自己系统安装的 Node(非 DevEco 内置),例如:

    npm install -g interface2class
    

📝 总结

优点说明
🚀 快速从 interface 一键生成 class,省时省力
🔁 自动化无需重复写构造函数、属性定义
🧱 项目友好支持 TS 与 ArkTS,适合 HarmonyOS 生态

如果你也在做多模型 ArkTS 项目,或正在用 HarmonyOS 的 DevEco Studio,不妨尝试这个工具。


附上命令验证小技巧:

i2c -v   # 查看版本号
i2c      # 查看帮助信息

相关文章:

  • 2000-2017年各省城市天然气供气总量数据
  • 【MySQL】数据库约束
  • 5.Chromium指纹浏览器开发教程之编译发布版本
  • 前沿篇|CAN XL 与 TSN 深度解读
  • 从零开始学A2A四:A2A 协议的高级应用与优化
  • Rocky8 升级 Python 3.9.20 并部署 Airflow 2.10.5
  • 2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(六级)真题
  • VASP 6.4.1 Ubuntu系统编译安装手册
  • 刘鑫炜履新共工新闻社新媒体研究院院长,赋能媒体融合新征程
  • 【Linux】【阿里云服务器】【树莓派】学习守护进程编程、gdb调试原理和内网穿透信息
  • 接口自动化测试(二)
  • 【零基础】基于 MATLAB + Gurobi + YALMIP 的优化建模与求解全流程指南
  • 大模型时代:AI应用的变革与挑战
  • Linux系统之----冯诺依曼结构
  • AI编程方法第五弹:测试很重要
  • 智谱AI大模型免费开放:开启AI创作新时代
  • docker镜像被覆盖了怎么办?通过sha256重新上传镜像
  • 第 7 期:DDPM 采样提速方案:从 DDPM 到 DDIM
  • 【论文阅读20】-CNN-Attention-BiGRU-滑坡预测(2025-03)
  • zset.
  • 云南省交通发展投资有限责任公司原党委书记、董事长陈以东接受审查调查
  • 祥源文旅:2024年营业收入约8.64亿元,今年旅游经济总体预期更为乐观
  • 世卫成员国就《大流行病协议》达成一致,首次演练应对气候诱发的病毒危机
  • 变局中,上海浦东何以继续引领?
  • 融创中国披露二次境外债重组方案:总规模约95.5亿美元债全额转股权,孙宏斌部分受限股票6年内不得处置
  • 马克龙:美乌欧在法磋商乌克兰问题“积极且有建设性”