错误:npm 安装后,rxfire 通用类型“AggregateQuerySnapshot<T>”在 Angular 构建中需要 1 个类型参数

Lat*_*rre 18 npm firebase angular

在维护 npm 升级后,我在 Angular 中遇到了一个新错误,其中没有直接依赖版本发生更改。

\n

ngserve 产生此错误并且构建失败:

\n
[ng]\n[ng] Error: node_modules/rxfire/firestore/lite/interfaces.d.ts:8:29 - error TS2314: Generic type 'AggregateQuerySnapshot<T>' requires 1 type argument(s).\n[ng]\n[ng]  8 export type CountSnapshot = lite.AggregateQuerySnapshot<{\n[ng]                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n[ng]  9     count: lite.AggregateField<number>;\n[ng]    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n[ng] 10 }, any, DocumentData>;\n[ng]    ~~~~~~~~~~~~~~~~~~~~~\n[ng] \xc3\x97 Failed to compile.\n
Run Code Online (Sandbox Code Playgroud)\n

我怎样才能解决这个问题?

\n

我已经从头开始重新安装了完整的项目。包依赖项与 Angular Fire 指令相匹配:

\n
 "dependencies": {\n    "@angular/common": "^15.2.2",\n    "@angular/core": "^15.2.2",\n    "@angular/fire": "^7.5.0",\n    "@angular/forms": "^15.2.2",\n    "@angular/platform-browser": "^15.2.2",\n    "@angular/platform-browser-dynamic": "^15.2.2",\n    "@angular/router": "^15.2.2",\n    "@angular/service-worker": "^15.2.2",\n    "firebase": "^9.17.1",\n    "tslib": "^2.2.0",\n    "zone.js": "~0.11.4"\n  },\n
Run Code Online (Sandbox Code Playgroud)\n

小智 15

我通过强制安装 rxfire 版本 6.0.3 解决了这个问题

npm install rxfire@6.0.3
Run Code Online (Sandbox Code Playgroud)

我也必须重新启动 ng 服务。


小智 11

我有这个错误,并使用 ng add @angular/fire 安装了 Angular/Fire

包.json:

"@angular/core": "^16.0.0",
"@angular/fire": "^7.6.1",
Run Code Online (Sandbox Code Playgroud)

包.lock.json:

"firebase": "^9.8.0",
"rxfire": "^6.0.0",
Run Code Online (Sandbox Code Playgroud)

在node_modules>rxfire>firestore>lite>interface.d.ts中

我变了

export type CountSnapshot = lite.AggregateQuerySnapshot<{
    count: lite.AggregateField<number>;
}, any, DocumentData>;
Run Code Online (Sandbox Code Playgroud)

export type CountSnapshot = lite.AggregateQuerySnapshot<{
    count: lite.AggregateField<number>;
}>;
Run Code Online (Sandbox Code Playgroud)

由于错误表明它需要 1 种类型的参数,因此我只留下一种。

我不知道它是否会影响应用程序,但我不打算使用 Firestore lite。


小智 9

安装最新版本的 firebase:

npm install firebase@latest
Run Code Online (Sandbox Code Playgroud)


小智 2

我在使用时遇到了同样的问题rxfire@6.0.5,但当我手动安装特定版本时问题得到解决rxfire@6.0.4

我采取了以下步骤:

  1. rxfire从我的node_modules文件夹中删除
  2. 手动安装具体版本:npm i rxfire@6.0.4
  3. 构建应用程序:npm run build

  • @AlDass 我可以问你做了什么吗? (2认同)