gpt4 book ai didi

typescript - 如何使用 Typescript 从 firebase (8+) 正确导入 Timestamp 类

转载 作者:行者123 更新时间:2023-12-05 08:49:02 33 4
gpt4 key购买 nike

我使用的是 firebase 7.16.1,我正在以这种方式导入和声明一个属性作为时间戳:

import { firestore } from 'firebase/app';

export class CourseEventMessage {
sentTimestamp: firestore.Timestamp;
}

但升级到 firebase 8.1.2 后,导入出现错误:

Module '"../../../node_modules/firebase"' has no exported member 'firestore'. Did you mean to use 'import firestore from "../../../node_modules/firebase"' instead?ts(2614)

我尝试了以下导入,所有导入都正常,但导入时不存在时间戳。

import firestore from "../../../node_modules/firebase"; 
import firestore from 'firebase';
import firestore from 'firebase/app';

我能找到导入时间戳的唯一方法是:

import * as firebase from 'firebase/app';

export class CourseEventMessage {
sentTimestamp: firebase.default.firestore.Timestamp;
}

那么导入 Timestamp 类的正确方法是什么?

最佳答案

在 v8 中,所有 Firebase 产品的所有类型都应来自“firebase/app”。正如您在 documentation 中看到的那样,开始导入是典型的做法。对于模块打包器:

import firebase from "firebase/app"

不要使用 v7 中的旧形式:

import * as firebase from "firebase/app"  // this no longer works the way you expect

Timestamp可以在 firebase.firestore.Timestamp 中找到。

import firebase from 'firebase/app';

export class CourseEventMessage {
sentTimestamp: firebase.firestore.Timestamp;
}

如果你想稍微缩写一下,使用类型别名:

type Timestamp = firebase.firestore.Timestamp;
export class CourseEventMessage {
sentTimestamp: Timestamp;
}

关于typescript - 如何使用 Typescript 从 firebase (8+) 正确导入 Timestamp 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65222371/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com