TypeScript. Наследование от класса с generic
TypeScript. Мне нужно, чтобы SomeController был построен на базе BaseController со спецификой некоторого типа SomeModel. Пробовал сделать как-то так:
class SomeModel {
static methodOfModel() {}
}
class BaseController <T> {
index() {
T.methodOfModel()
// SomeModel.methodOfModel() works
}
}
class SomeController extends BaseController<SomeModel> {}
new SomeController()
Получаю ошибку 'T' only refers to a type, but is being used as a value here.
Ответы (1 шт):
Автор решения: Cat Grey
→ Ссылка
Решил вопрос так:
class SomeModel {
static methodOfModel() {}
}
class BaseController {
someModel: typeof SomeModel
constructor(someModel: typeof SomeModel){
this.someModel = someModel
}
index() {
this.someModel.methodOfModel()
}
}
class SomeController extends BaseController {
constructor() {
super(SomeModel)
}
}
new SomeController()