protected wrapped: {[key: string]: Writable<any>}
protected values: {[key: string]: any}
constructor() {
Object.keys(this.wrapped).forEach(w => this.wrapped[w].subscribe(value => this.values[w] = value)
}
}
class SomeController extends Controller {
protected wrapped: {user: userStorage}
public log() {
console.log(this.values)
}
}
let x = new SomeController();
x.log(); // {} :(
Как бы мне при инициализации наследующего класса в ТС выполнять конструктор основного класса, основываясь на оверрайженых аттрибутах из наследующего?
в constructor'е класса Controller я бы принимал значения "оверрайженых аттрибутов", инициализировал бы их Далее в SomeController в его конструкторе вызывал бы super с аргументами.
abstract class Controller<T extends Record<string, Writable<any>>> { protected wrapper: T } class SomeController extends Controller<{ user: UserStrorage }> { }
Обсуждают сегодня