【问题标题】:Typescript and rxjs 6 - Property does not exist on type '{}'Typescript 和 rxjs 6 - 类型“{}”上不存在属性
【发布时间】:2018-09-06 12:30:53
【问题描述】:

我正在开发一个带有 Ionic 3 的小型应用程序,它查询一个 firebase 数据库以获取 2 系列数据。第一次构建失败并出现错误“类型'{}'上不存在属性”但如果我再保存一次.ts文件(保存为ex.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 的值​​。 感谢您的帮助

更新: 见 cmets。目前我正在使用一种解决方法将语法从 result.map(x => x.my-property-key1) 更改为 result.map(x => x[my-property-key1])

据此:https://github.com/Microsoft/TypeScript/issues/12596

【问题讨论】:

    标签: javascript angular typescript firebase ionic-framework


    【解决方案1】:

    试试

    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';
    

    【讨论】:

    • 看看我的回答,订阅的结构有点不同stackoverflow.com/questions/51667824/…
    • rxjs 和 rsjs-compact 应该是依赖而不是开发依赖
    • 谢谢大家,我的包版本没问题,也可以导入。尝试导出类并声明变量并不能完成这项工作,但我很确定这取决于我的无能。最后我解决了将语法从 result.map(x => x.my-property-key1) 更改为 result.map(x => x[my-property-key1]) ...希望这也可以帮助其他人跨度>
    猜你喜欢
    • 2016-08-27
    • 1970-01-01
    • 2019-04-11
    • 2018-12-11
    • 2018-11-17
    • 1970-01-01
    • 2023-04-02
    • 2018-08-17
    • 1970-01-01
    相关资源
    最近更新 更多