Как обойтись без any в фабричной функции? По смыслу это что-то вроде Page: typeof Page, т.к. нужно сослаться на конструктор передаваемого в функцию класса:
abstract class PageServ {
abstract templateName: string;
abstract httpStatus: number;
constructor() {
}
get template(): string {
return this.templateName + '.html';
}
}
const MainPageServ = class extends PageServ {
public templateName: string;
public httpStatus: number;
constructor() {
super();
this.templateName = 'MainPage';
this.httpStatus = 200;
}
}
function fabric(Page: any) {
const inst = new Page;
console.log(inst.httpStatus);
}
fabric(MainPageServ)
Код в
песочнице.