Ваш параметр change
имеет тип Change. Если вы перейдете к нему в VSCode, вы увидите его определение здесь:
export declare class Change<T> {
before?: T;
after?: T;
constructor(before?: T, after?: T);
}
Обратите внимание, что его свойства before
и after
являются необязательными и отмечены ?
в типе. Это означает, что возможно, что значения не определены.
Вероятно, ваша конфигурация TypeScript в tsconfig.json
содержит строку для "strict": true
, которая говорит TypeScript не предупреждать вас всякий раз, когда вы пытаетесь получить доступ к свойству, которое может быть неопределено, без явной предварительной проверки. Это ошибка, которую вы видите здесь.
У вас есть два варианта:
1) Удалите эту строку из вашего tsconfig.json
2) Или проверьте, определен ли он первым
if (change.after) {
const after = change.after.data();
const payload = {
data: {
temp: String(after.temp),
conditions: after.conditions
}
}
return admin.messaging().sendToTopic("Settings/ShiftsEditMode", payload)
}
else {
return null;
}