Если вы посмотрите на определение TypeScript change.after.data()
, вы увидите, что метод данных объявлен как возвращающий неопределенный объект или объект.Поскольку он может возвращать неопределенное значение, вам нужно проверить этот случай, прежде чем начинать обращаться к свойствам или методам для него, когда TypeScript находится в строгом режиме.И вы должны сделать это, даже если вы абсолютно уверены, что ваш документ будет иметь именованное свойство.
Вы можете отключить строгий режим (который я не рекомендую - строгий режим защитит вас отошибки программирования), или вы можете проверить data
и previousData
, прежде чем начать их использовать.
const data = change.after.data();
const previousData = change.before.data();
if (data && previousData) {
// do stuff with them
}