Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular Typescript:Arrow函数-TS2339:类型';上不存在属性;{}';_Angular_Typescript - Fatal编程技术网

Angular Typescript:Arrow函数-TS2339:类型';上不存在属性;{}';

Angular Typescript:Arrow函数-TS2339:类型';上不存在属性;{}';,angular,typescript,Angular,Typescript,在rxjs流中使用fat arrow函数时,使用Angular,我经常会得到typescript编译错误 我仍然可以运行应用程序,它确实可以传输,但我想知道如何摆脱错误并理解它 鉴于: this.data$ = this.route.params .switchMap(params => Observable.forkJoin([ Observable.of(params),

rxjs
流中使用
fat arrow函数时,使用Angular,我经常会得到
typescript
编译错误

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

鉴于:

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]中的错误 文件.ts:xx:xx TS2339:类型“{}”上不存在属性“prop1”

[at loader]中的错误 文件.ts:xx:xx TS2339:类型“{}”上不存在属性“param1”

为什么它会抱怨这个呢?

试试这个:

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)
试试这个:

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)

Typescript认为angular的route参数是空对象,不应具有任何属性。只需将参数输入到
any
,错误就应该消失了。您的意思是使用“data.prop1 as any”?不确定语法会是什么样子,如果你能用语法回答的话?这取决于你从api中获得的数据。您的api是否具有prop1的数据?@Smit,是的,它doesTypescript认为angular的路由参数是空对象,不应具有任何属性。只需将参数输入到
any
,错误就应该消失了。您的意思是使用“data.prop1 as any”?不确定语法会是什么样子,如果你能用语法回答的话?这取决于你从api中获得的数据。你的api中有prop1的数据吗?@Smit,是的,它也消除了如下错误:[params,data]:any[],谢谢我也消除了如下错误:[params,data]:any[],谢谢