# AirPower-Transformer **Repository Path**: air-power/AirPower-Transformer ## Basic Information - **Project Name**: AirPower-Transformer - **Description**: 🔥🔥🔥AirPower-Transformer 是一个基于 TypeScript 的数据转换器,提供了从 JSON 对象到 类实例 对象之间互相转换的系列装饰器和方法。 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: main - **Homepage**: https://www.npmjs.com/package/@airpower/transformer - **GVP Project**: No ## Statistics - **Stars**: 73 - **Forks**: 12 - **Created**: 2024-03-02 - **Last Updated**: 2025-09-04 ## Categories & Tags **Categories**: javascript-toolkits **Tags**: TypeScript, toolkit ## README

Github / Gitee / NPM

# 🎉 项目介绍 **AirPower-Transformer** 是一个基于 `TypeScript` 的数据转换器,提供了从 `JSON` 对象到 `类实例` 对象之间互相转换的系列装饰器和方法。 # 💻 如何安装 ```shell npm install @airpower/transformer # or yarn add @airpower/transformer # or cnpm install @airpower/transformer # or ... ``` # 📖 使用说明 ```ts import { IgnorePrefix, Prefix, Transformer, Type } from '@airpower/transformer' @Prefix('role____') class Role extends Transformer { id!: number name!: string } @Prefix('user_') class User extends Transformer { id!: number name!: string @IgnorePrefix() age!: number @Type(Role) role!: Role @Type(Role, true) roleList: Role[] = [] } const user = new User() user.id = 1 user.name = 'Hamm' user.age = 18 const role = new Role() role.name = 'Admin' user.role = role const roleItem = new Role() roleItem.name = 'User' user.roleList.push(roleItem) const json = user.copy().toJson() console.warn('json', JSON.stringify(json)) json.name = '???' // 无效 const user2 = User.fromJson(json) console.warn('user2', user2) ``` # ⏰ 欢迎反馈 如有疑问,可以通过本仓库的 **Issues** 与我们联系,如果你有一些代码贡献,可以通过 **Pull Request** 将代码贡献,为这个项目添砖加瓦。 如果有更多的需求和建议,欢迎通过本仓库的 `Issues` 提出,也欢迎加入 QQ群 555156313 与我们及时反馈。