首页 > 解决方案 > 如何根据类型在可扩展类上重用“工厂”方法?

问题描述

我有一个类:我的 Angular 应用程序上的BaseResourceModel

export abstract class BaseResourceModel{
    id?: any;
    description?: string;
    name?: string;
}

还有其他几个继承自它的类,如下所示:

import { BaseResourceModel } from '@core/models/_base/base-resource.model';

export class CityModel extends BaseResourceModel{

    constructor(ufId?: number){
        super();
    }

    static factory(obj: any): CityModel{
        return Object.assign(new CityModel(), obj);
    }
}

我想知道是否有办法或正确的方法将static factory方法放在 BaseResourceModel 上,但为每个继承人指定分配类型,如下所示:

export abstract class BaseResourceModel{
    id?: any;
    description?: string;
    name?: string;

    static factory(obj, class){
        //ex.: class parameter will get here like CityModel
        return Object.assign(new class(), obj);
    }

}

标签: javascriptangulartypescript

解决方案


推荐阅读