使用Typescript中的另一个泛型类型约束泛型类型

时间:2019-02-03 10:22:05

标签: typescript generics inheritance

我有一些基类:

class BaseService<E> {
    constructor(protected entity: E) {}
}

class BaseController<E, S extends BaseService<E>> {
    constructor(protected service: S) {}
}

然后,我有一个以上类的具体实例:

class ArticleService extends BaseService<Article> {}

class ArticleController extends BaseController<Article, ArticleService> {}

问题是:我可以以某种方式从E中删除BaseController吗?

当我在ArticleController中声明SArticleService时,就足够了-ArticleService已被定义为扩展BaseService<Article>。我没有在Article中使用ArticleController,它只是为了满足服务定义。

1 个答案:

答案 0 :(得分:0)

您只需删除E并使用S extends BaseService<any>。您不在任何地方使用此类型信息,因此完全可以。