0
使用Angular時,在rxjs
流內使用fat arrow functions
時,我經常會收到typescript
編譯錯誤。打字稿:箭頭功能 - TS2339:屬性在類型「{}」上不存在
我仍然可以運行該應用程序,它確實會傳輸,但我想知道如何擺脫錯誤並理解它。
考慮:
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)
我得到的錯誤:
錯誤的[在裝載機] file.ts:XX:XX TS2339:房產 '爲prop1' 不存在上鍵入「{}」。
ERROR in [at-loader] file.ts:xx:xx TS2339:屬性'param1'在類型'{}'上不存在。
爲什麼它會抱怨呢?
打字稿認爲,從棱角分明的路線PARAMS是一個空的對象,不應該有任何屬性。只要將類型轉換爲'any',錯誤應該消失 – cyrix
,所以你的意思是使用「data.prop1作爲任何」?不知道語法如何,如果你可以請用語法回答? – Thibs
這取決於你從api獲得的數據。你的api有prop1的數據嗎? – Smit