打字稿:箭头功能 - TS2339:类型“{}”上不存在属性

时间:2017-03-03 17:21:45

标签: angular typescript

使用Angular,在typescript流中使用fat arrow functions时,我经常会遇到rxjs编译错误。

我仍然可以运行应用程序而且它确实可以转换,但我想知道如何摆脱错误并理解它。

假设:

this.data$ = this.route.params
        .switchMap(params =>  
             Observable.forkJoin([
                 Observable.of(params),
                 this.http.get('/api', { param1: params.param1, param2: params.param2 })
        ])
        //**Errors from this part below**
        .map(([params, data]) => data.prop1 + ' - ' + params.param1)

我收到了错误:

  

[at-loader]中的错误   file.ts:XX:XX       TS2339:属性'prop1'在类型'{}'上不存在。

     

[at-loader]中的错误   file.ts:XX:XX       TS2339:属性'param1'在类型'{}'上不存在。

为什么抱怨这个?

1 个答案:

答案 0 :(得分:1)

试试这个:

this.data$ = this.route.params
    .switchMap((params: any) =>  
         Observable.forkJoin([
             Observable.of(params),
             this.http.get('/api', { param1: params.param1, param2: params.param2 })
    ])
    //**Errors from this part below**
    .map(([params, data]: [any, any]) => data.prop1 + ' - ' + params.param1)