У меня есть несколько базовых классов:
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
, что S
равно ArticleService
, этого должно быть достаточно - ArticleService
уже определено как расширение BaseService<Article>
.Я не использую Article
в ArticleController
, это только для того, чтобы удовлетворить определение сервиса.