需安装reflect-metadata库以支持Reflect.metadata
参考:https://github.com/typestack/class-transformer
import { plainToClass, Expose, Type } from "class-transformer";import "reflect-metadata";class Addr {@Expose()provience!: string;@Expose()city!: string;get all() {return this.provience + "." + this.city;}}class User {@Expose()name!: string;@Expose()sex!: string;@Expose()age!: string;@Type(() => Addr)@Expose()addr!: Addr;get description() {return `${this.name} ${this.sex} ${this.age}岁`;}}const resList = [{name: "liu",sex: "m",age: 25,job: "javascript",addr: { provience: "SiChuan", city: "ChengDu" },},{name: "xie",sex: "f",age: 21,addr: { provience: "SiChuan", city: "ChengDu" },},];let users = plainToClass(User, resList, { excludeExtraneousValues: true });console.log(users);console.log(users[0].addr.all)
