我正在做Angular教程here
以下代码具有双精度类型声明,但我不明白它的含义。
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);
};
}
因此,将错误声明为any类型,然后还有另一个冒号来声明一个带有Observable作为参数的函数。它到底返回了什么?
答案 0 :(得分:5)
您返回的类型是 函数 。它需要一个error: any
并返回Observable<T>
。
(error: any): Observable<T>
之后,您可以使用具有正文的函数来初始化变量
=> {
console.error(error);
this.log(`${operation} failed: ${error.message}`);
return of(result as T);
};
因此,您的handleError
返回带签名的函数,其参数类型为any
,并返回Observable<T>
(error: any): Observable<T>
答案 1 :(得分:2)
return (error: any): Observable<T> => { ... }
这将返回一个函数,该函数带有一个名为error
的名为any
的参数,其返回类型为Observable<T>
,并且其主体位于花括号之间。