首页 > 解决方案 > 如何在打字稿中实现工厂方法?

问题描述

我的代码:

class Model {}

class Loader {
    static load<M extends Model>(ModelClass: typeof Model): M {
        return new ModelClass();
    }
}

错误信息:Type 'Model' is not assignable to type 'M'.

游乐场链接:goo.gl/qrSsoX

标签: typescript

解决方案


我们应该说load将类作为参数而不是实例。

export interface Type<T> extends Function { new (...args: any[]): T; }

class Model {}

class Loader {
    static load<M extends Model>(ModelClass: Type<M>): M {
        return new ModelClass();
    }
}

有关更多信息,请查看答案


推荐阅读