typescript - 云函数 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();
吗?
解决方案
你有两个选择:
const myFoo = snapshot.data() as Foo;
或者
const myFoo = <Foo> snapshot.data();
如果文档的字段名称与 Foo 的属性名称不匹配,您可能会感到不快。