Compétence Technique

React TypeScript

Développer des interfaces modernes, robustes et maintenables avec React et TypeScript.

Ma définition

React est une bibliothèque JavaScript permettant de créer des interfaces utilisateur interactives et dynamiques, basées sur le concept de composants réutilisables. Elle facilite la structuration d’une application en éléments indépendants, ce qui rend le code plus lisible et plus simple à maintenir.

TypeScript est un sur-ensemble de JavaScript qui ajoute un typage statique au langage. Concrètement, cela permet de définir des types pour les variables, les fonctions ou les objets, ce qui aide à détecter les erreurs dès le développement, avant même l’exécution du code.

L’association de React et TypeScript permet de développer des interfaces robustes et évolutives. Le typage renforce la fiabilité du code, améliore sa compréhension et limite les erreurs, tandis que React apporte une structure claire et modulaire. Cette combinaison est particulièrement adaptée aux projets modernes, où la maintenabilité et la qualité du code sont des enjeux majeurs.

Éléments de preuve

J'ai découvert React & TypeScript pour la première fois lors de mon stage chez EasyVista, dans le cadre du projet de migration Ev-WYSIWYG, qui consistait à faire évoluer des plugins développés en AngularJS vers une architecture en React avec TypeScript.

Ce premier projet m’a permis de me familiariser à la fois avec la logique de développement en composants propre à React, ainsi qu’avec le typage apporté par TypeScript. J’ai appris à structurer une interface utilisateur de manière modulaire, à gérer les propriétés des composants et à sécuriser les données grâce au typage.

Par la suite, j’ai continué à utiliser cette stack tout au long de ma période de stage sur d’autres projets chez EasyVista comme celui lié aux modules web. Cette continuité m’a permis de consolider mes acquis, notamment en améliorant ma manière d’organiser le code, de gérer les états et de travailler dans un environnement professionnel.

À la suite de cette première expérience professionnelle, j’ai réutilisé React et TypeScript dans un projet personnel : la création d’un site vitrine pour Madame Olympio et son cabinet d’avocat. J’ai pu à travers ce projet mettre en pratique mes compétences nouvellement acquises en autonomie, en concevant une interface adaptée aux besoins d’une cliente réelle. J’ai pu y appliquer les bonnes pratiques acquises en entreprise, à savoir structuration du code, la clarté des composants et méthodologie de travail.

Enfin, dans le cadre de mon alternance chez AUXASPHERE SAS, j’ai continué à utiliser React et TypeScript sur l'application souveraine que l’on développait pour nos clients. J’ai alors pu renforcer ce que j’avais appris dans un environnement totalement différent des précédentes, une startup avec un projet très ambitieux, contrairement à mon expérience de stagiaire où j’avais un profil front-end, lors de mon alternance j’avais un profil fullstack, je m’occupais alors à la fois du front et du back.

Toutes ces expériences m’ont permis de progresser continuellement en React & Typescript.

Auto-critique

Au regard de mon parcours, je considère aujourd’hui avoir atteint un niveau confirmé en React & TypeScript.

Je suis à l’aise dans le développement d’interfaces utilisateur avec React, notamment dans la conception de composants réutilisables et dans l’organisation d’une application de manière claire et structurée. L’usage de TypeScript m’a permis de renforcer la fiabilité de mon code en limitant les erreurs dès la phase de développement, tout en améliorant sa lisibilité.

Au fil de mes projets, j’ai développé une certaine autonomie sur cette stack. J’ai pu travailler sur des problématiques concrètes, m’adapter à différents contextes et structurer mes développements en appliquant les bonnes pratiques vues en entreprise.

Cependant, je reste conscient que certains aspects nécessitent encore d’être approfondis pour atteindre un niveau expert. Sur React, je maîtrise les hooks les plus courants comme useState, qui permet de gérer l’état local d’un composant, useEffect, utilisé pour gérer les effets de bord comme les appels API ou les mises à jour du DOM, ou encore useRef, qui permet de conserver une référence persistante entre les rendus.

En revanche, je dois encore progresser sur des hooks plus avancés comme useMemo et useCallback, qui permettent d’optimiser les performances en évitant des recalculs ou recréations inutiles, useReducer, qui offre une gestion d’état plus structurée, ainsi que sur la création de hooks personnalisés afin de factoriser et réutiliser de la logique métier.

Je souhaite également mieux maîtriser certaines problématiques liées aux applications frontend complexes, notamment la gestion d’un état partagé entre plusieurs composants ou pages. Par exemple, dans une grande application, des informations comme l’utilisateur connecté, les préférences d’affichage, les notifications ou encore les données métiers peuvent être utilisées à plusieurs endroits. Pour cela, il est important de maîtriser des outils comme Redux, Zustand ou le Context API de React.

De la même manière, certains usages avancés de TypeScript restent à explorer, notamment les types génériques, les types utilitaires, les types conditionnels ou encore la création de types complexes adaptés à des composants réutilisables.

Perspective d'Évolution

Je souhaite faire évoluer mon niveau actuel vers l’expertise, en approfondissant à la fois les fondamentaux et les concepts avancés de cette stack.

Pour cela, je m’inscris dans une démarche d’apprentissage continue, notamment à travers des tutoriels et la lecture d’ouvrages spécialisés comme React – développez le Front End de vos applications web et mobiles avec JavaScript et TypeScript – Notions fondamentales (éditions ENI). Ces ressources me permettent de consolider mes bases tout en découvrant des fonctionnalités plus avancées que je n’ai pas encore pleinement exploitées en projet.

Etant donné que j’aspire à être Tech Lead, la maîtrise de React et TypeScript est essentielle afin d’avoir une vision globale du développement frontend et de pouvoir accompagner une équipe sur les bonnes pratiques, l’architecture et les choix techniques.