Qu'est-ce que TypeScript ?
Proposé en 2012 par Microsoft, TS est très inspiré de C#, l'inventeur des deux langages étant le même.
Il a pour but d'améliorer et de sécuriser la production de code JavaScript, la raison invoquée dans l'introduction. Relativement simple à utiliser, le langage est vite devenu un compromis pour améliorer le développement de projets JavaScript.
Il a été adopté par un nombre croissant de développeurs web et est aujourd'hui incontournable dans l'écosystème JS.
Les 10 raisons de l'adopter
Vous pouvez encore ne pas être convaincu de l'utilisation de TypeScript au quotidien, de mon expérience, je ne pourrais pas revenir en arrière sur du JS vanilla, TS est devenu incontournable pour moi. Voici les dix raisons de ce choix :
Pour approfondir : TypeScript vs JavaScript
Typage statique
TypeScript introduit un système de typage statique qui permet de détecter et de corriger les erreurs de typage au moment de la compilation.
Grâce à celui-ci, je suis obligé d'utiliser une variable du type que j'ai défini dans les paramètres de ma fonction. Un string est un string et non un mélange du type.
Cela améliore la robustesse et la maintenabilité du code.
📌 Même si vous n'utilisez pas TS, votre IDE (en tout cas Visual Studio) va utiliser l'inférence proposée par TS pour vous suggérer le type à utiliser dans le code JavaScript.
Meilleure maintenabilité et durabilité du code
Découlant du premier bénéfice, grâce à la vérification statique des types, TS facilite la maintenance du code en réduisant le nombre d'erreurs de type et en améliorant la lisibilité.
Vous n'aurez plus besoin de passer du temps à écrire des commentaires décrivant les paramètres de vos fonctions, tout sera dans le code directement et le nommage suffira à le comprendre.
📌 Dans le fichier tsconfig, utilisez la propriété noImplicitAny pour interdire l'utilisation de any dans votre code.
Meilleure productivité du développement
TS offre une meilleure productivité du développement.
Un typage fort et une meilleure lisibilité facilite le développement de nouvelles fonctionnalités et la résolution des bugs.
📌 Attention, TS valide les types à la compilation et non à l'exécution, il faut donc rester vigilant sur les données entrantes, si elles sont corrompues, les bonnes vieilles erreurs JavaScript reviendront.
Meilleure intégration avec les frameworks JavaScript populaires
TypeScript est compatible avec les frameworks JS les plus populaires tels que Angular, React et Vue.js, ce qui facilite son intégration dans les projets existants.
La plupart des Frameworks ont une intégration de TS très bien documentée.
Il reste tout de même beaucoup de contenu en vanilla JavaScript et un peu de recherche s'impose pour utiliser convenablement le code. Pensez à ChatGPT !
📌 Pensez à installer la déclaration de type de votre dépendance, souvent avec un nom préfixé en @types/ .
Refactoring Facilité
Grâce aux informations de type, le refactoring du code devient plus simple et moins risqué.
Les outils de développement peuvent identifier et mettre à jour automatiquement les références lorsqu'un changement de signature de fonction est effectué. Grâce à la compilation, l'erreur sera immédiatement visible, les tests unitaires pourront alors se concentrer sur l'exécution et non plus sur la cohérence du projet.
📌 Pour graver dans le marbre la signature de vos fonctions et méthodes, pensez à l'utilisation des namespaces (espaces de noms)
Meilleure évolutivité
TypeScript facilite la gestion de projets JavaScript complexes en offrant des fonctionnalités telles que les modules, les espaces de noms et les interfaces.
C'est une des raisons majeures de son adoption massive. Le mapping des données est directement dans le code, c'est déjà une documentation en soi.
📌 Les bonnes pratiques de JS s'appliquent aussi à TS, son usage ne vous donne pas le droit de faire n'importe quoi.
Meilleure collaboration
Ce point est le corollaire du précédent, en forçant une utilisation du typage strict, on facilite la collaboration entre les membres de l'équipe de développement par l'obligation d'utiliser des standards de développement élevés. Utiliser TypeScript améliore le confort du développement en équipe.
📌 Dès le départ, mettez-vous d'accord sur le paramétrage du fichier tsconfig.
Détection Précoce des Erreurs
La qualité du logiciel est améliorée par le système de type de TypeScript qui permet la détection d'erreurs potentielles avant l'exécution du code.
Si vous appelez une fonction qui attend un string avec une variable contenant un nombre, le compilateur remontera une erreur. Le périmètre des bugs s'en trouve réduit.
📌 Même s'il vous enlève une sacrée épine du pied, cela ne vous exonère pas de réaliser des tests unitaires et fonctionnels.
Orienté Objet avec Types
Grâce aux interfaces, aux classes et aux classes abstraites, TypeScript implémente nativement la gestion de la POO (Programmation Orientée Objets). Les dernières mises à jour de JS offrent ces possibilités, TypeScript les proposait avec beaucoup d'avance, avec du typage fort en prime !
📌 Avant d'utiliser les types complexes, prennez le temps de vous familiarisez avec les types simples.
Meilleure qualité du code
Il facilite l'écriture de code de qualité. Il oblige les développeurs à utiliser des lignes directrices sur lesquelles on ne peut pas transiger.
TypeScript pourrait avoir un slogan tel que “L'adopter, c'est ne plus pouvoir s'en passer” tellement son usage propulse le développement web vers des sommets de performances. Et une durabilité bien meilleure que sur les projets en JavaScript natifs.
📌 Attention à limiter l'utilisation de librairies "éxotiques" comme fp-ts ou io-ts. La communauté sur celles-ci est très peu développée.
Pour aller plus loin
Convaincu ? Il existe de nombreuses ressources sur le web pour vous aider à changer de dimension. Notre plateforme propose aussi une formation complète, finançable à 100% sur l'apprentissage de TypeScript.
Vous avez des questions ? Une interrogation ?