Javascript 在构造函数中使用plainToClass

Javascript 在构造函数中使用plainToClass,javascript,typescript,class,constructor,class-transformer,Javascript,Typescript,Class,Constructor,Class Transformer,我有一个为实例分配属性的构造函数: class BaseModel { constructor (args = {}) { for (let key in args) { this[key] = args[key] } } } class User extends BaseModel { name: string } 然后我可以创建这样一个实例: let user = new User({name: 'Jon'}

我有一个为实例分配属性的构造函数:

class BaseModel {
    constructor (args = {}) {
        for (let key in args) {
            this[key] = args[key]
        }
    }
}

class User extends BaseModel {
    name: string
}
然后我可以创建这样一个实例:

let user = new User({name: 'Jon'})
现在,我想用类转换器替换此基本功能:

let user=plainToClass(user,{name:'Jon'})

我的代码库在很多地方使用第一种方法,因此我希望在构造函数中实现新方法,这样我就不会破坏旧代码:

 constructor (args = {}) {
        let instance = plainToClass(CLASSTYPE, args)
        for (let key in Object.keys(instance)) {
            this[key] = instance [key]
        }
    }

如何在构造函数中获取类类型?我不能使用User,因为这是基本模型,其他类也可以从中扩展。

我想它是
新的。target

要获取构造函数,请使用
new.target.prototype.constructor
,并使用其属性
name
-获取类名

class BaseModel {
    typeName: string;

    constructor (args = {}) {
        this.typeName = new.taget.constructor.name;
    }
}

class User extends BaseModel {
}

const user = new User();
const typeName = user.typeName; // this would return 'User'

我认为应该从
plainToClass
调用构造函数,而不是相反。