облачные функции typcript snapshot.val () безопасность типов - PullRequest
0 голосов
/ 28 августа 2018
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 голосов
/ 28 августа 2018

У вас есть два варианта:

const myFoo = snapshot.data() as Foo;

Или

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

Если имена полей вашего документа не совпадают с именами свойств Foo, вас может удивить неприятный сюрприз.

...