Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

27 linhas
911 B

  1. import _extends from "@babel/runtime/helpers/extends";
  2. // This module is based on https://github.com/airbnb/prop-types-exact repository.
  3. // However, in order to reduce the number of dependencies and to remove some extra safe checks
  4. // the module was forked.
  5. // Only exported for test purposes.
  6. export const specialProperty = 'exact-prop: \u200b';
  7. function exactProp(propTypes) {
  8. /* istanbul ignore if */
  9. if (process.env.NODE_ENV === 'production') {
  10. return propTypes;
  11. }
  12. return _extends({}, propTypes, {
  13. [specialProperty]: props => {
  14. const unsupportedProps = Object.keys(props).filter(prop => !propTypes.hasOwnProperty(prop));
  15. if (unsupportedProps.length > 0) {
  16. return new Error(`The following properties are not supported: ${unsupportedProps.map(prop => `\`${prop}\``).join(', ')}. Please remove them.`);
  17. }
  18. return null;
  19. }
  20. });
  21. }
  22. export default exactProp;