TypeScript:改变JSON对象中元素的类型



我有一个来自Firebase (Firestore)查询的JSON对象。

let json = [{
"historical_data": {
"created_by": "HKyUyCuVj0g12htOsAPmGCcffBq2",
"created_at": {
"seconds": 1606403054,
"nanoseconds": 416000000
}
}
}];

我需要将created_at值更新为Firestore服务器时间戳。

因此,我将迭代并更新相应的字段,如下所示:

for (var i in json) {
var item = json[i];
item.historical_data.created_at = firebase.firestore.FieldValue.serverTimestamp();
}

虽然VS Code给我以下错误信息:

Type 'FieldValue' is missing the following properties from type '{ seconds: number; nanoseconds: number; }': "seconds", "nanoseconds"

我理解错误,为什么它发生了,所以有任何方法来更新JSON和改变或转换created_at的类型到另一个?

您可以直接在typescript中用as关键字强制转换serverTimestamp的返回类型:

interface CreateAt {
seconds: number;
nanoseconds: number;
}
for (var i in json) {
var item = json[i];
item.historical_data.created_at = 
firebase.firestore.FieldValue.serverTimestamp() as CreateAt;
}

相关内容

最新更新