Как обеспечить проверку конструктора во время компиляции в Typescript - PullRequest
0 голосов
/ 24 сентября 2018

Есть ли способ обеспечить проверку времени существования компилятора в Typescript?то есть.У меня есть следующий класс:

@autoinject
export abstract class HttpServiceBase {
    constructor(private httpClient: HttpClient){}
}

, а затем у меня есть следующий класс:

export class UserService extends HttpServiceBase{
    public async getAllUsers():Promise<any>{
        ... this function is not important here
    }
}

@autoinject
export class NewUserViewModel {
    public model:any;
    constructor(private service:UserService){}

     public async activate(){
          return  this.service.getAllUsers()
                .then(result=> this.model = result);
      }
 }

Проблема в том, что базовый абстрактный класс имеет конструктор с 1 параметром, но подклассне имеет конструктора.Поэтому я получаю ошибки во время выполнения, когда Aurelia пытается создать UserService из контейнера DI.Я не нашел способа сказать компилятору выдавать ошибку, когда я забыл написать конструктор подкласса, если у суперкласса есть требуемые параметры в своем собственном.

Обновление : этот сценарий работает без проблем:

@autoinject
export class UserService extends HttpServiceBase{
    constructor(httpClient:HttpClient){
        super(httpClient);
    }
    public async getAllUsers():Promise<any>{
    ... this function is not important here
    }
}

Но у меня есть много подобных сервисов и много членов команды.Так что есть много точек, где компилятор должен уведомить о сокрытии базового конструктора.

...