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> => { ... }