TYPESCRIPTTYPESCRIPT

-- Définition --

TypeScript est un sur-ensemble typé de JavaScript, développé et maintenu par Microsoft. Il ajoute au JavaScript classique un système de types statiques : chaque variable, chaque paramètre de fonction, chaque retour de méthode peut être explicitement typé. Le compilateur détecte les erreurs avant même que le code ne s'exécute. Pour un développeur junior habitué au JavaScript, la transition peut sembler contraignante au début. Elle devient rapidement indispensable. Ce qui change concrètement avec TypeScript, c'est la confiance dans le code. Renommer une propriété d'un objet sans oublier de la mettre à jour partout, savoir exactement ce qu'une fonction attend en entrée et ce qu'elle retourne en sortie, détecter un undefined potentiel avant qu'il ne provoque une erreur en production : ce sont des bénéfices tangibles, visibles dès les premiers projets sérieux. TypeScript ne rend pas le code exempt de bugs, il rend les bugs plus difficiles à ignorer. En 2025, TypeScript est devenu le standard de facto du développement frontend moderne. Angular l'impose nativement, Next.js le recommande par défaut, et la quasi-totalité des librairies majeures de l'écosystème JavaScript publient leurs types. La version 5.x a introduit des améliorations significatives sur les types conditionnels et les décorateurs, consolidant TypeScript comme un outil de production mature, pas un simple ajout syntaxique.

-- Mes preuves --

Portfolio-inator est le projet de fin d'études, conçu sur la base de la grille d'évaluation en tant que cahier des charges. L'ensemble de l'application a été développé en Next.js avec TypeScript, Tailwind CSS et Neon comme base de données. Chaque composant, chaque page, chaque appel API : entièrement typé. TypeScript n'était pas une contrainte imposée par un énoncé d'examen, c'était un choix délibéré, une manière de travailler proprement sur un projet qui représente directement le profil professionnel. Le portfolio est une application avec des données dynamiques côté serveur, TypeScript a joué un rôle structurant sur les interfaces de données : les types des compétences, des réalisations, du parcours ont été définis une fois et réutilisés partout, du fetch côté serveur jusqu'au rendu côté client. Cette cohérence entre les couches a rendu le code plus sûr, plus lisible, et plus facile à faire évoluer au fil des ajouts de contenu. Projet réalisé seul, de A à Z. Fitness-inator est un projet personnel, conçu sans cahier des charges extérieur, avec un seul objectif : pratiquer TypeScript de manière concrète sur une application fonctionnelle. Suivre des séances de sport, enregistrer des exercices, visualiser une progression : un domaine métier simple en apparence, mais qui implique une modélisation précise des données, des interfaces bien définies et une gestion rigoureuse des états dans l’interface. Ce projet a été l'occasion de travailler TypeScript sans le filet d'un framework fortement opinioné comme Angular. Chaque type défini à la main, chaque générique pensé pour être réutilisable, chaque erreur de compilation transformée en apprentissage. C'est sur ce type de projet personnel, sans deadline d'examen et sans stack imposée, que la compréhension d'un langage progresse le plus vite. Le code produit reflète une pratique volontaire, motivée par la conviction que bien typer son code n'est pas une formalité, c'est une forme de respect envers soi-même et envers ceux qui reprendront le projet.

-- Autocritique --

TypeScript est la compétence sur laquelle la progression est la plus directement liée à la motivation personnelle. Ce n'est pas un langage imposé par un cursus, c'est un choix fait par conviction sur les projets personnels, et cette différence se ressent dans la manière de l’aborder. Les fondamentaux sont solides : typage des variables, interfaces, types union et intersection, génériques de base, typage des fonctions et des callbacks. Sur les projets Angular des études de cas, TypeScript était présent par défaut, mais le contexte académique ne forçait pas à en exploiter toute la richesse. Sur le fitness-inator et le portfolio-inator, le niveau d'exigence sur le typage a été nettement plus élevé, par choix personnel. Ce qui reste à approfondir : les types avancés. Les types conditionnels, les mapped types, les template literal types, les infer : ces constructions permettent d'écrire des types expressifs et réutilisables qui s'adaptent dynamiquement à leur contexte. Ce niveau de maîtrise n'est pas encore atteint. Il s'acquiert sur des projets complexes, avec du recul, en lisant du code bien typé écrit par des développeurs expérimentés et en comprenant pourquoi chaque choix de type a été fait. TypeScript occupe une place centrale dans le profil technique actuel. C'est le langage du frontend moderne, celui de Next.js, d'Angular, de NestJS. Le niveau actuel permet de livrer du code typé, propre et maintenable. La marge de progression existe, elle est bien identifiée, et elle sera comblée naturellement par la pratique continue sur des projets de plus en plus ambitieux.

-- Évolution --

Les types avancés sont le prochain palier. Pas pour montrer que le langage est maîtrisé dans ses recoins les plus obscurs, mais parce que savoir écrire un type générique conditionnel ou un mapped type permet de construire des abstractions vraiment réutilisables, qui réduisent la duplication et rendent les interfaces d'API plus sûres. C'est ce niveau qui fait la différence entre un code TypeScript fonctionnel et un code TypeScript élégant. Le projet portfolio-inator continuera d'évoluer après la soutenance de fin d'études. De nouvelles sections, de nouvelles fonctionnalités, des données plus dynamiques : c'est un terrain de pratique permanent, sur lequel le typage sera affiné à chaque itération. Chaque ajout sera l'occasion de revisiter les types existants, de les consolider, d'en éliminer les any qui traînent. Dans le cadre du projet de société de développement logiciel, TypeScript sera le langage par défaut sur toutes les applications web, sans exception. Pas de JavaScript non typé en production, pas de any banalisé pour gagner du temps. Cette ligne ne sera pas négociable, parce qu'une application mal typée aujourd'hui sera le problème de quelqu'un demain. Et ce quelqu'un, ce sera peut-être soi-même.