首页 > 解决方案 > 云函数 typescript snapshot.val() 类型安全

问题描述

functions.firestore.document('/foos/{fooId}').onUpdate(

(change: Change<DocumentSnapshot>, context: EventContext) => {
const snapshot = change.after;
  const myFoo: Foo = snapshot.data();
}

);

编辑抱怨:

Type 'DocumentData' is not assignable to type 'Foo'

指定 snapshot.data() 类型为 Foo 的最佳方法是什么,这样我就可以让自动完成功能正常工作。

我可以去<Foo> snapshot.data();吗?

标签: typescriptfirebasetypescastinggoogle-cloud-functions

解决方案


你有两个选择:

const myFoo = snapshot.data() as Foo;

或者

const myFoo = <Foo> snapshot.data();

如果文档的字段名称与 Foo 的属性名称不匹配,您可能会感到不快。


推荐阅读