当前位置: 首页 > 知识库问答 >
问题:

如何解决rxjs类型脚本错误(Ionic 3,angularfire2)

巫懿轩
2023-03-14

当我试图使用angularfire 2为我的离子3应用程序服务时,我再次出现错误。

以下是错误:

类型脚本错误“;”预期。C:/Users/Admin/Verein/node_modules/rxjs/internal/types。d、 ts

导出声明类型ObservedValueOf=O扩展observeInput?T:从来没有;

需要打字错误表达式。C:/用户/管理员/Verein/node_modules/rxjs/内部/types.d.ts

导出声明类型ObservedValueOf=O扩展observeInput?T:从来没有;

Typescript错误“ObservableInput”仅引用类型,但在此处用作值。C:/Users/Admin/Verein/node_modules/rxjs/internal/types。d、 ts

Typescript错误找不到名称“推断”。C:/Users/Admin/Verein/node_modules/rxjs/internal/types。d、 ts

还有更多都与rxjs有关。我用它作为例子如下:

import { Note } from '../../model/note/note.model';
import { AngularFireDatabase } from 'angularfire2/database';
import { map } from 'rxjs/operators';
import { Observable } from 'rxjs';

@Component({
  selector: 'page-aufgaben',
  templateUrl: 'aufgaben.html'
})
export class AufgabenPage {


  aufgaben: Observable<Note[]>;

  constructor(public navCtrl: NavController, private modal: ModalController, public events: Events, private db: AngularFireDatabase) {

      this.aufgaben = this.db.list('/aufgabenverzeichnis/').snapshotChanges().pipe(
     map(changes =>
       changes.map(c => ({ key: c.payload.key, ...c.payload.val() }))
     )
   );
  }

这是我的包裹。json:

{
  "name": "Verein",
  "version": "0.0.1",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "scripts": {
    "start": "ionic-app-scripts serve",
    "clean": "ionic-app-scripts clean",
    "build": "ionic-app-scripts build",
    "lint": "ionic-app-scripts lint"
  },
  "dependencies": {
    "@angular/animations": "5.2.11",
    "@angular/common": "5.2.11",
    "@angular/compiler": "5.2.11",
    "@angular/compiler-cli": "5.2.11",
    "@angular/core": "5.2.11",
    "@angular/forms": "5.2.11",
    "@angular/http": "5.2.11",
    "@angular/platform-browser": "5.2.11",
    "@angular/platform-browser-dynamic": "5.2.11",
    "@ionic-native/core": "~4.18.0",
    "@ionic-native/splash-screen": "~4.18.0",
    "@ionic-native/status-bar": "~4.18.0",
    "@ionic/storage": "2.2.0",
    "@reactivex/rxjs": "^5.5.3",
    "angularfire2": "^5.1.1",
    "firebase": "^5.8.4",
    "ionic-angular": "3.9.3",
    "ionicons": "3.0.0",
    "promise-polyfill": "^8.1.0",
    "rxjs": "^6.4.0",
    "rxjs-compat": "^6.4.0",
    "sw-toolbox": "3.6.0",
    "zone.js": "0.8.29"
  },
  "devDependencies": {
    "@ionic/app-scripts": "3.2.1",
    "@ionic/lab": "1.0.20",
    "typescript": "^2.6.2"
  },
  "description": "An Ionic project"
}

我知道这与不同的版本有关,但我读到安装rxjs compat应该可以解决这个问题。问题是它从来没有这样做过。当我在IDE中保存部分项目而不更改任何内容时,它会在实验室页面重新加载后再次工作,这更奇怪。所以我真的不知道该怎么办了。请帮忙。

编辑:遵循下面的建议并升级到typscript 2.7后。2和rxjs/rxjs兼容到6.3。3上面的错误消失了,但是我得到了一堆新的错误,这些错误在我的IDE中随机保存了项目后也消失了,但是如果我重新服务的话,它们会回来。以下是新的错误:

我设法删除了其中一些(它们都与语法相关),但有一个类型我无法删除,因为我不知道如何更改语法。剩下的所有错误都是这样的:

Typescript错误类型“可观察”

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { ModalController } from 'ionic-angular';
import { Events } from 'ionic-angular';
import { Note } from '../../model/note/note.model';
import { AngularFireDatabase } from 'angularfire2/database';
import { map } from 'rxjs/operators';
import { Observable } from 'rxjs';

@Component({
  selector: 'page-aufgaben',
  templateUrl: 'aufgaben.html'
})
export class AufgabenPage {

  public color: string = 'primary';
  public color2: string ='primary';
  aufgaben: Observable<Note[]>;

  constructor(public navCtrl: NavController, private modal: ModalController, public events: Events, private db: AngularFireDatabase) {

/*error points to this.aufgaben*/ this.aufgaben = this.db.list('/aufgabenverzeichnis/').snapshotChanges().pipe(
         map(changes =>
           changes.map(c => ({ key: c.payload.key, ...c.payload.val() }))
         )
       );
      }

笔记模型ts:

 export interface Note {
  titel: string;
  beschreibung: string;
}

这个错误在不同的ts文件中多次出现,所以我只列出了一个示例。保存后,它们全部消失,重新打开应用程序后重新出现,无需我进行任何更改。所以我真的不知道如何解决这个问题。这些语法错误是否与新的typscript版本相关?

编辑:我可以通过更改“aufgaben:Observable”来解决这个问题


共有1个答案

别旻
2023-03-14

这些问题与rxjsTypescript有关。对于rxjs新版本(6.4.0),支持的TypeScript的最低版本为2.8。但在您的例子中,TypeScript版本是2.6。2.这就是这个问题的原因。要解决此问题,请将TypeScript升级到2.8或将rxjsrxjs compat降级到与TypeScript 2.6兼容的miner版本。2.

在我的例子中,我将rxjsrxjs compat降级为6.3。3版本(我的打字脚本版本是2.7.2)。

请在此处查找更多信息

 类似资料:
  • 我有一个FirebaseActions类,它为我做注册和登录工作。我在其中添加了一个getCurrentUser方法。我从我的主屏幕小部件调用这个函数。我需要将返回值(type= FirebaseUser)放入主屏幕的一个变量中,以访问loggedInUser.email。我的问题;有什么方法可以将FirebaseUser类型数据转换成Future类型变量?当我在HomeScreen而不是Fire

  • 问题内容: 我越来越 非法胶印类型 此代码每次迭代的错误。这是代码: 问题答案: __当您尝试使用 对象 或 数组 作为索引键访问数组索引时,会发生 非法的偏移类型 错误。 例: 您的数组包含一个对象或数组,其值为的某个值,当您尝试将其用作的索引键时,会收到警告。您必须确保包含所需的内容并正确访问它。

  • 已完成休耕步骤,但如您所见,将出现休耕错误:

  • 我试图实现方法底部导航视图,但当我运行代码时,我得到了这个错误 build.gradle(模块应用程序)

  • 我有以下两段代码: 自定义标题。tsx 详细信息屏幕。tsx 在detailscreen中,我得到以下错误: 属性“导航”在“只读”类型上不存在 我搜索了这个问题,我知道它有一个问题,即我没有在CustomHeader中声明类型。然而,我不知道如何解决这个问题。我对打字有点陌生。有人能给我解释一下如何解决这类问题吗?