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

下载网站后怎么做seo有哪些网站

下载网站后怎么做,seo有哪些网站,做网站点击率赚钱,网页设计与网站开发素材使用reflect-metadata和class-transformer,实现JSON与类的双向转换。 一、介绍 reflect-metadata介绍 提供元数据存储和反射能力,可在类、属性或方法上附加自定义信息,并通过反射机制在运行时读取。 reflect-metadata关键修饰符&#xff…

使用reflect-metadata和class-transformer,实现JSON与类的双向转换。

一、介绍

reflect-metadata介绍

提供元数据存储和反射能力,可在类、属性或方法上附加自定义信息,并通过反射机制在运行时读取。

reflect-metadata关键修饰符:

1.@Reflect.metadata(key, value)

功能:为类/属性/方法附加元数据

参数:key:元数据标识符(字符串或Symbol) value:存储的任意类型数据

示例:

@Reflect.metadata('version', '1.0')
class MyClass {
@Reflect.metadata('type', 'string')
name: string = '';}

2.内置元数据类型

design:type:获取属性类型

design:paramtypes:获取方法参数类型

design:returntype:获取方法返回类型

class-transformer介绍

实现对象与JSON数据之间的双向转换,支持复杂类型的序列化/反序列化。

class-transformer核心修饰符:

1.@Expose(options?)

功能:控制属性序列化/反序列化可见性

参数:name:JSON字段别名 since/until:版本控制范围

示例:

@Expose({ name: 'user_name' })username: string = '';

2.@Type(typeFn)

功能:指定嵌套类型转换规则

参数:typeFn:返回目标类型的箭头函数

示例:

@Type(() => Date)createTime: Date;

3.@Transform(transformFn, options?)

功能:自定义值转换逻辑

参数:transformFn:转换处理器函数 groups:分组控制

示例:

@Transform(({ value }) => value.toUpperCase())
name: string;

 

‌二、应用

1.安装依赖

ohpm i class-transformer
ohpm i reflect-metadata  # 需配合装饰器使用 

2.基类Model

import 'reflect-metadata';
import { Type, Expose, plainToInstance, instanceToPlain, plainToClass } from 'class-transformer';export class BaseModel {/*** 类实例转JSON* @param instance 类实例* @param excludeExtraneous 是否排除未标记属性*/toJson(excludeExtraneous = true): string {return JSON.stringify(instanceToPlain(this, {excludeExtraneousValues: excludeExtraneous}));}
}

3.实际创建Model

import 'reflect-metadata';
import { Type, Expose } from 'class-transformer';
import { BaseModel } from '../../support/base/BaseModel';@Expose()
export class MFUserModel extends BaseModel {@Expose({ name: 'Token' }) // 支持JSON字段映射token: string = '';@Expose()Phone: string = '';@Expose()PostType: number = 0;// 嵌套对象处理@Expose()@Type(() => AllowOrgListModel) // 确保类型转换AllowOrgList?: AllowOrgListModel[] ;
}// 嵌套类定义
export class AllowOrgListModel {@Expose()OrgId: string = '';@Expose()PersonId: string = '';
}

3.使用示例‌

let par = {'Phone':this.userPhone, 'Password': this.password} as Record<string, number | String>;
httpReq.post<HttpResponseData>('/Person/Login', par).then(resData => {if (resData.Code == 200) {const userModel1 = plainToClass(MFUserModel, resData.RetData); // objectconst jsonStr = userModel.toJson() // 转JSON字符串const userModel2 = plainToClass(MFUserModel, jsonStr); // stringconsole.log('JSONString:', jsonStr);} else {Toast.show(resData.Msg)}
}).catch((error: Error) => {ConsoleLog.error('登录失败:', error.message);Toast.show(error.message)
});

http://www.dtcms.com/wzjs/132472.html

相关文章:

  • 做架构图的网站福州百度开户多少钱
  • wordpress基于什么语言seo优化的优点
  • 南通网站建设果尔营销软文500字
  • 青州网站建设公司淄博网站营销与推广
  • 网站建设和网站推广上海外贸seo
  • 盐城做网站的公司网络营销案例
  • 济南行业网站开发杭州seo工作室
  • 备案中又需要建设网站seo优质友链购买
  • 一个专做特卖的网站seo关键词搜索优化
  • 设计排版优秀网站全网品牌推广公司
  • 推荐网站建设的电销该怎么打网站推广seo
  • 网站建设合作协议申请厦门百度推广开户
  • dz网站制作设计网站
  • 微信商城与网站一体nba最新排名公布
  • 印度做批发的网站有哪些aso推广平台
  • 网站模板大全 优帮云谷歌seo招聘
  • 重庆开县网站建设报价赚钱平台
  • 网站开发是先做前段还是后台seo客服
  • 做网站和做系统的区别关键词优化怎么弄
  • 阜新市住房和城乡建设委员会网站湖南省人民政府
  • 企业网站程序带wapseo网络培训班
  • 可以做网站的软件上传歌曲seo推广系统
  • 网站 友情链接怎么做关键词排名优化公司推荐
  • 去国外做赌钱网站最受欢迎的十大培训课程
  • 湖北住房和城乡建设厅网站东莞网站推广技巧
  • 网站重新备案 需要关闭网站么免费seo软件推荐
  • 个人网站可以做淘宝推广品牌推广服务
  • 龙口做网站es158交易链接
  • 南宁新技术产业建设开发总公司网站株洲最新今日头条
  • 上海黄页查询seo服务的内容