Bei Verwendung von Angular bekomme ich oft typescript
Kompilierfehler, wenn fat arrow functions
in einem rxjs
Stream verwendet wird.Typescript: Arrow-Funktion - TS2339: Eigenschaft existiert nicht beim Typ '{}'
Ich kann immer noch die App laufen und es tut transpile, aber ich würde gerne wissen, wie man den Fehler loswerden und verstehen.
Gegeben:
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)
bekomme ich die Fehler:
ERROR in [at-loader] file.ts: xx: xx TS2339: Das Objekt 'PROP1' existiert nicht auf Art '{}'.
Fehler in [at-loader] file.ts: xx: xx TS2339: Die Eigenschaft 'param1' existiert nicht für den Typ '{}'.
Warum beschwert es sich darüber?
Typoskript denkt, dass die Route params von Winkel sind ein leeres Objekt und sollte keine Attribute haben. JustCast Params zu 'any' und die Fehler sollten – cyrix
sein, so dass Sie" data.prop1 as any "verwenden? Nicht sicher, wie die Syntax aussehen würde, wenn Sie bitte mit der Syntax antworten können? – Thibs
Das hängt von den Daten ab, die du von deiner API bekommst. Hat deine API Daten mit prop1? – Smit