属性“ toDate”在类型“日期” Angular firestore中不存在

时间:2020-09-06 10:22:40

标签: angular typescript timestamp angularfire

我正在尝试使用timestamp在TypeScript中将Date对象从Firestore转换为toDate()对象。

import { AngularFirestore } from '@angular/fire/firestore';
...
constructor(private database?: AngularFirestore) {...}
...
const someVariable = a.date.toDate();

尽管该功能在开发模式下运行良好,但出现TypeScript编译检查错误。而且由于该错误,我无法构建产品版本(使用ng prod)。

a.date.toDate()~~~~ src / app / project / some.service.ts:74:36-
错误TS2339:类型“日期”上不存在属性“ toDate”。

任何建议如何解决?

2 个答案:

答案 0 :(得分:2)

toDate()在日期,字符串,数字等上不起作用。将您的日期的类型更改为任何用于时间戳。

date: any;

顺便说一句,我通常会在HTML文件中使用toDate()。它会显示错误,但可以编译。键入 any 还将清除html错误。

答案 1 :(得分:1)

该错误告诉您,据TypeScript所知,a.date已经已经Date,而不是Timestamp。因此,您需要查看a是什么的类型信息。如果说它的date属性是Date,而实际上却是Timestamp,那就是您需要解决的问题。 (或者,当然,如果a.date已经是Date,则不需要对其进行toDate调用。但是您说这段代码是“在开发模式下工作”,这表明它是真的是Timestamp。)