好吧,我猜我错过了一件非常简单的事情。提供的参数与包装方法中调用目标的任何签名都不匹配 - Typescript
比方说我有重复了很多相同的东西像这样多种方法:样板
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;
});
}
吨至this.unitOfWork.teamRepository.getDepartmentsForTeam(id)
一个电话,所以我想为一个通用的包装样板如:
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;
});
}
,我可以再调用,如:
public getDepartments(id: number): ng.IPromise<IDepartmentViewModel[]> {
return this.internalCall<IDepartmentViewModel[]>(this.unitOfWork.teamRepository.getDepartmentsForTeam(id));
,但我得到了以下错误:
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.
什么是通过我的方法到其他与提供的参数来调用它的正确方法?