Как проверить наличие у глубокого свойства родительского свойства в объекте?
в черновиках следующего стандарта есть Optional Chainingobj?.prop         // optional property access
obj?.[expr]       // ditto
func?.(...args)   // optional function or method call
new C?.(...args)  // optional constructor invocation
Через babel можно использовать уже сейчас https://babeljs.io/docs/en/babel-plugin-proposal-o... , правда я сам не пробовал
можно написать функцию, проверяющую свойстваfunction checkProps(obj, props) {
  if (!obj) return false; 
  let value = obj; 
  for (let i = 0, l = props.length; i < l; i++) {
    value = value[props[i]];
    if (value == null) return false;
  }
  return true;
}

if (checkProps(campaign, ['budget', 'bills', 'type'])) {}