簡體   English   中英

Typescript和rxjs 6-類型'{}'不存在該屬性

[英]Typescript and rxjs 6 - Property does not exist on type '{}'

我正在使用Ionic 3查詢firebase數據庫以獲取2系列數據的方式開發一個小型應用程序。 第一次構建失敗,並顯示錯誤“類型'{}'上不存在屬性”,但是如果我再節省一次.ts文件(保存為home.ts以便進行離子重建),該錯誤將消失並且頁面可以正常運行。

我正在做:

ionViewDidLoad() {

  this.db.list('myPath-in-firebase', ref => ref.orderByChild('my-key'))
    .valueChanges()
      .subscribe(result => { 
      let mydata1= result.map(x => x.my-property-key1);
      let mydata2= result.map(x => x.my-property-key2);
      console.log(mydata1);
      };
}

但是我收到一個打字稿錯誤:在第一個離子服務構建開始中,“類型'{}'上不存在屬性'my-property-key1'”,然后我保存了該項目的文件,並進行了離子重建,並且工作正常。 我想我必須在某個地方聲明x及其屬性,但是我不知道如何以及在哪里。

最后(也許有更好的方法,您可以幫我嗎?),我的數據庫就像這樣:

my-firebase-database
    |- my-Path
           |- Push-ID-1
                   |- my-property-key1: value
                   |- my-property-key2: value
           |- Push-ID-2
                   |- my-property-key1: value
                   |- my-property-key2: value
           |- Push-ID-3
                   |- my-property-key1: value
                   |- my-property-key2: value

我將有2個數組,一個包含my-property-key1的值,另一個包含my-property-key2的值。 感謝您的幫助

更新 :請參閱注釋。 目前,我正在使用一種變通方法,將語法從result.map(x => x.my-property-key1)更改為result.map(x => x [my-property-key1])

根據這個: https : //github.com/Microsoft/TypeScript/issues/12596

嘗試

npm remove --save typescript;
npm i --save-dev typescript@2.6.2;
npm i --save-dev rxjs@6.2.2
npm i --save-dev rxjs-compat@6.2.2



import 'rxjs/Rx';

import { switchMap, map } from 'rxjs/operators';
import { Observable, pipe } from 'rxjs';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM