function parseProperty(value, propDefinition, target) {
  // Use default value if value is falsy.
  if (value === undefined || value === null || value === '') {
    value = propDefinition.default;
    if (Array.isArray(value)) {
      value = value.slice();
    }
  }
  // Invoke property type parser.
  return propDefinition.parse(value, propDefinition.default, target);
}
Deserialize a single property.

@param {any} value - The value to parse.
@param {object} propDefinition - The single property schema for the property.
@param {any} target - Optional target value to parse into (reuse).