Suppressions de React 19 (propTypes, defaultProps, ReactDOM.render)

React 🟡 Mid

Définition

React 19 (5 décembre 2024, guide de migration publié le 25 avril 2024) supprime les API dépréciées de longue date : propTypes et defaultProps sur les composants fonction (utiliser TypeScript et les paramètrès par défaut), les refs chaînés, le legacy Context, React.createFactory, ReactDOM.render, hydraté, unmountComponentAtNode, findDOMNode et react-test-renderer/shallow. Les builds UMD disparaissent aussi. Le codemod react/19/migration-recipe automatise l'essentiel.

Analogie

Un grand déménagement : ce qui était étiqueté « à jeter » depuis des années part enfin à la benne.

Exemple de code

// ❌ React 18
function Card({ title }) { /* ... */ }
Card.propTypes = { title: PropTypes.string };
Card.defaultProps = { title: 'Sans titre' };
ReactDOM.render(<App />, document.getElementById('root'));

// ✅ React 19
function Card({ title = 'Sans titre' }: { title?: string }) { /* ... */ }
createRoot(document.getElementById('root')).render(<App />);

// Migration automatisée
// npx codemod@latest react/19/migration-recipe
// npx types-react-codemod@latest preset-19 ./src

Cas d'usage

Question d'entretien classique : « qu'est-ce qui casse en passant à React 19 ? » ; audit d'une base legacy avant montée de version.

Anti-pattern

Présenter PropTypes ou defaultProps comme la façon de typer un composant : ils sont ignorés (voire supprimés) depuis React 19.
#core#react19#migration#interview

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre