Angular TypeScript中的双类型声明是什么意思?
我在做角度教程 下面的代码有双重类型声明,但我不理解它的含义Angular TypeScript中的双类型声明是什么意思?,angular,typescript,Angular,Typescript,我在做角度教程 下面的代码有双重类型声明,但我不理解它的含义 handleError<T>(operation = 'operation', result?: T) { return (error: any): Observable<T> => { console.error(error); this.log(`${operation} failed: ${error.message}`); return of(resu
handleError<T>(operation = 'operation', result?: T) {
return (error: any): Observable<T> => {
console.error(error);
this.log(`${operation} failed: ${error.message}`);
return of(result as T);
};
}
handleError(操作='operation',结果?:T){
返回(错误:任意):可观察=>{
控制台错误(error);
此.log(`operation}失败:${error.message}`);
返回(结果为T);
};
}
所以error被声明为any类型,然后有另一个冒号来声明一个以Observable作为参数的函数。它究竟返回什么?您返回的类型是函数。它接受一个
错误:any
并返回Observable
因此,您的handleError
返回一个函数,其签名采用any
类型的参数,并返回一个可观察的
(错误:任意):可观察
返回(错误:any):可观察=>{…}
它返回一个函数,使用名为
error
的参数,类型为any
,返回类型为Observable
,函数体位于花括号之间。handleError函数返回一个函数,该函数接收一个错误参数并返回Observableman,这有时会与所有括号混淆。谢谢
(error: any): Observable<T>
=> {
console.error(error);
this.log(`${operation} failed: ${error.message}`);
return of(result as T);
};
(error: any): Observable<T>
return (error: any): Observable<T> => { ... }