Ok, ich schätze, ich vermisse etwas wirklich Einfaches auf diesem.Mitgelieferte Parameter stimmen mit keiner Signatur des Aufrufziels in Wrapper-Methode überein - Typoskript
Lets sagen, dass ich mehrere Methoden, die eine Menge von den gleichen Dingen wie dies wiederholen:
public getDepartments(id: number): ng.IPromise<IDepartmentViewModel[]> {
this.common.loadStart();
return this.unitOfWork.teamRepository.getDepartmentsForTeam(id).then((response: IDepartmentViewModel[]) => {
this.common.loadComplete();
return response;
}).catch((error) => {
this.common.loadReset();
return error;
});
}
Tonnen von vorformulierten für einen einzigen Aufruf this.unitOfWork.teamRepository.getDepartmentsForTeam(id)
so wollte ich für einen generischen Wrapper machen die vorformulierten wie:
private internalCall<T>(method:() => ng.IPromise<T>): ng.IPromise<T> {
this.common.loadStart();
return method().then((response: T) => {
this.common.loadComplete();
return response;
}).catch((error) => {
this.common.loadReset();
return error;
});
}
Was ich dann wie nennen könnte:
public getDepartments(id: number): ng.IPromise<IDepartmentViewModel[]> {
return this.internalCall<IDepartmentViewModel[]>(this.unitOfWork.teamRepository.getDepartmentsForTeam(id));
Aber ich erhalte den folgenden Fehler:
Supplied parameters do not match any signature of call target:
Type '() => ng.IPromise<IDepartmentViewModel[]>' requires a call signature, but type 'ng.IPromise<IDepartmentViewModel[]>' lacks one.
Was ist der richtige Weg, um meine Methode in die andere zu übergeben Sie es mit dem mitgelieferten Parameter zu nennen?