Я думаю, что проблема в вашей addressIsValid
функции.
Возьмем, к примеру, 2 объекта:
const o = { name: 'john' };
const o2 = { name: undefined };
!o.name
-> false
;
!o2.name
-> true
;
Ничто из вышеперечисленного не удовлетворяет условию == undefined
или == null
.
Таким образом, вы всегда получите ложное значение.
Вы можете изменить свою функцию следующим образом:
public addressIsValid() {
return this.delivery.address !== undefined
&& this.delivery.address !== null;
}