function runCheck(proptypes, addInvalidProp) {
      if (proptypes) {
        proptypes.forEach((prop) => {
          if (config.validateNested && nestedPropTypes(prop)) {
            runCheck(prop.value.arguments[0].properties, addInvalidProp);
            return;
          }
          if (flowCheck(prop) || regularCheck(prop) || tsCheck(prop)) {
            addInvalidProp(prop);
          }
        });
      }
    }
Runs recursive check on all proptypes
@param {Array} proptypes A list of Property object (for each proptype defined)
@param {Function} addInvalidProp callback to run for each error