Объявления Typescript для функций Firebase не найдены - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть проект с preact-cli и preact-cli-typescript-plugin. Все компилируется, запускается и работает просто отлично, но я не могу понять, как импортировать объявления машинописи для функций Firebase. Вот пример проблемы.

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, но я не уверен, как заставить компилятор увидеть это.

1 Ответ

0 голосов
/ 08 сентября 2018

Я думаю, я понял это. Я не должен импортировать CollectionReference, DocumentSnapshot и Firestore. Вместо этого мне нужно использовать полные имена типов, например firebase.firestore.Firestore. Я также могу использовать псевдоним типа, чтобы сделать его короче:

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