Запретить null но разрешить undefined во входных параметрах Vue 3

Странно как-то обстоят дела с понятием "опциональности" входных параметров (props) во Vue 3 (может и в 2, но это не актуально). Если если входной параметр помечен как required: false, то и undefined и null будут расценеы так пустое значение и никаких предупреждений в консоль не будет выдано:

export default {
  props: {
    label: {
      type: String,
      required: false
    }
  }
};

В этом случае валидатор validator (если он есть) выполнен не будет:

export default {
  props: {
    label: {
      // Не будет вызван, когда значение `null`
      validator: value => typeof value == "string" && value.length > 0,
      required: false
    }
  }
};

При этом, если указано значение по умолчанию default, то оно будет подставлено только когда значение входного параметра undefined, не не когда null.

export default {
  props: {
    label: {
      validator: value => typeof value == "string" && value.length > 0,
      default: "DEFAULT" // Не будет поставлен, когда значение - `null`
    }
  }
};

Как же при таком раскладе исключить null? Нужно каждый опциональный параметр теперь как на null, так и на undefined проверять, или каждый из них обкладывать computed-ами? Слишком много рутин для середины 2020-х. Нужно что-то, что берёт эти рутины на себя.


Ответы (0 шт):