docs: function applyPropDoclets(props, propName) {
    let prop = props[propName];
    let doclets = prop.doclets;
    let value;
  
    // the @type doclet to provide a prop type
    // Also allows enums (oneOf) if string literals are provided
    // ex: @type {("optionA"|"optionB")}
    if (doclets.type) {
      value = cleanDocletValue(doclets.type);
      prop.type.name = value;
  
      if (value[0] === '(') {
        value = value.substring(1, value.length - 1).split('|');
  
        prop.type.value = value;
        prop.type.name = value.every(isLiteral) ? 'enum' : 'union';
      }
    }
  
    // Use @required to mark a prop as required
    // useful for custom propTypes where there isn't a `.isRequired` addon
    if (doclets.required) {
      prop.required = true;
    }
  
    // Use @defaultValue to provide a prop's default value
    if (doclets.defaultValue) {
      prop.defaultValue = cleanDocletValue(doclets.defaultValue);
    }
  }