【问题标题】:Typescript declarations for Firebase features not found找不到 Firebase 功能的 Typescript 声明
【发布时间】:2018-09-08 16:31:31
【问题描述】:

我有一个使用 preact-cli 和 preact-cli-typescript-plugin 设置的项目。一切都可以编译、运行和工作,但我不知道如何为 Firebase 功能导入 typescript 声明。这是问题的一个示例。

import { CollectionReference, DocumentSnapshot, Firestore } from 'firebase/firestore';
import { Observable } from 'rxjs';

export default class FirestoreDatabase {
  private readonly itemCollection: CollectionReference;

  constructor(firestore: Firestore) {
    this.itemCollection = firestore.collection('items');
  }

  items(): Observable<DocumentSnapshot> {
    return Observable.create(observer =>
      this.itemCollection.onSnapshot(observer)
    );
  }
}

该类工作得很好,并且符合预期,但我收到警告:

[ts] Could not find declaration file for module 'firebase/firestore'. '[project root]/node_modules/firebase/firestore/dist/index.cjs.js' implicitly has type of any.

在第一行代码上执行了四次。 Firebase 的所有类型及其功能模块都在 node_modules/firebase/index.d.ts 中,但我不确定如何让编译器看到。

【问题讨论】:

    标签: typescript firebase preact


    【解决方案1】:

    我想我已经弄清楚了。我不应该导入 CollectionReference、DocumentSnapshot 和 Firestore。相反,我需要使用类型的完全限定名称,例如firebase.firestore.Firestore。我还可以使用类型别名使其更短:

    type Firestore = firebase.firestore.Firestore
    type CollectionReference = firebase.firestore.CollectionReference;
    type QuerySnapshot = firebase.firestore.QuerySnapshot;
    

    【讨论】:

      猜你喜欢
      • 2021-10-28
      • 2019-12-29
      • 2020-11-28
      • 2018-01-03
      • 2018-12-09
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 2017-02-16
      相关资源
      最近更新 更多