TypeScript中的双精度类型声明是什么意思?

时间:2018-08-15 06:40:25

标签: angular typescript

我正在做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作为参数的函数。它到底返回了什么?

2 个答案:

答案 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>,并且其主体位于花括号之间。