Skip to Content
🎉 Utilisez JS efficacement →
ToolingReact & FrontendPropTypes pour les composants de React

PropTypes React

React PropTypes est un mécanisme de validation des props dans React qui permet de vérifier le type des données passées aux composants.

Pourquoi utiliser PropTypes ?

PropTypes aide à :

  • Détecter les bugs tôt dans le cycle de développement
  • Documenter les props attendues par un composant
  • Améliorer la maintenabilité du code

Installation

npm install prop-types

Exemples d’utilisation

Types de base

import PropTypes from 'prop-types'; function Welcome(props) { return <h1>Bonjour {props.name}</h1>; } Welcome.propTypes = { name: PropTypes.string.isRequired, age: PropTypes.number, isAdmin: PropTypes.bool, hobbies: PropTypes.array, user: PropTypes.object };

Types complexes

import PropTypes from 'prop-types'; function UserProfile(props) { return ( <div> <h2>{props.user.name}</h2> <ul> {props.posts.map(post => ( <li key={post.id}>{post.title}</li> ))} </ul> </div> ); } UserProfile.propTypes = { user: PropTypes.shape({ name: PropTypes.string.isRequired, age: PropTypes.number, email: PropTypes.string }), posts: PropTypes.arrayOf( PropTypes.shape({ id: PropTypes.number.isRequired, title: PropTypes.string.isRequired }) ) };

Valeurs spécifiques

function Button(props) { return <button className={props.size}>{props.label}</button>; } Button.propTypes = { size: PropTypes.oneOf(['small', 'medium', 'large']), label: PropTypes.string.isRequired };

Props personnalisées

function Password(props) { return <input type="password" value={props.value} />; } Password.propTypes = { value: function(props, propName, componentName) { if (props[propName].length < 8) { return new Error( `Le mot de passe dans ${componentName} doit contenir au moins 8 caractères` ); } } };

Bonnes pratiques

  1. Toujours définir les PropTypes pour les composants réutilisables
  2. Utiliser .isRequired pour les props obligatoires
  3. Documenter les props complexes avec des commentaires
  4. Désactiver PropTypes en production pour de meilleures performances

PropTypes vs TypeScript

PropTypes est utile pour :

  • Les petits projets
  • L’ajout rapide de validation
  • La rétrocompatibilité

TypeScript offre :

  • Une validation plus complète
  • Un meilleur support IDE
  • Une détection d’erreurs à la compilation

Choisissez en fonction de vos besoins et de la taille de votre projet.

mis à jour le