好吧,我猜我錯過了一件非常簡單的事情。提供的參數與包裝方法中調用目標的任何簽名都不匹配 - 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.
什麼是通過我的方法到其他與提供的參數來調用它的正確方法?