云函数Typescript snapshot.val()类型安全

时间:2018-08-28 17:59:44

标签: typescript firebase types casting google-cloud-functions

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();吗?

1 个答案:

答案 0 :(得分:1)

您有两个选择:

const myFoo = snapshot.data() as Foo;

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

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