Ma manière de vendre TypeScript (sales pitch)
(2ality.com)- TypeScript est un langage qui ajoute des informations de type à JavaScript
- Les informations de type sont supprimées avant l’exécution par le moteur JS → autrement dit, cela nécessite un travail supplémentaire lors de l’écriture et du déploiement
- Ce travail supplémentaire en vaut-il la peine ? → Oui, largement
Autocomplétion et détection d’erreurs pendant l’édition du code
- TypeScript fournit l’autocomplétion et la détection d’erreurs lors de l’écriture du code
- Exemple 1 : fautes de frappe, types incorrects, arguments manquants
- Une erreur est signalée si l’on accède à une propriété inexistante. Elle n’apparaît pas non plus dans l’autocomplétion
- Une erreur est signalée si l’on appelle une méthode sur un type incorrect
- Une erreur est signalée lorsqu’un argument obligatoire manque
- Une erreur est signalée lorsqu’un argument d’un type incorrect est transmis
- Exemple 2 : erreur sur la valeur de retour d’une fonction
- Une erreur est signalée si la valeur de retour ne correspond pas au type défini
- Par exemple, si la valeur retournée est
string[]alors que le type de retour est défini commestring, une erreur se produit
- Exemple 3 : erreur de traitement d’une propriété optionnelle
- Lorsqu’une propriété optionnelle est utilisée comme valeur de retour, une erreur est signalée si le type ne correspond pas
- Exemple 4 :
casemanquants dans une instructionswitch- Une erreur se produit si tous les
cased’une instructionswitchne sont pas traités - Une erreur se produit si l’exigence selon laquelle la valeur restante doit être de type
nevern’est pas respectée
- Une erreur se produit si tous les
- Exemple 5 : erreur de traitement d’un cas particulier dans le code
- Une erreur se produit si une branche de traitement est incorrecte selon une valeur donnée
- Par exemple, une erreur se produit si l’on accède à une propriété inexistante sur un type d’objet donné
Indiquer les paramètres des fonctions et les types de retour → une bonne forme de documentation
- TypeScript permet d’indiquer les paramètres des fonctions ainsi que les types de retour
- Cela améliore la compréhension du code et sa maintenabilité
- Le type des arguments d’une fonction et de sa valeur de retour apparaît clairement
Refactorisation du code renforcée
- TypeScript aide à effectuer les refactorisations de code de manière plus sûre
- Lors du renommage d’une méthode, la modification est répercutée en toute sécurité dans tout le code lié
- Il permet d’identifier précisément les relations entre les différentes parties du code
Utiliser TypeScript est devenu plus facile
- L’exécution et la compilation de TypeScript sont devenues plus simples
- Il est possible d’exécuter directement TypeScript sur des plateformes comme Node.js, Deno et Bun
- Des bundlers comme Vite prennent TypeScript en charge nativement
- Introduction du type stripping → seules les informations de type sont supprimées, sans autre transformation
- La publication de packages npm s’est améliorée → prise en charge de la génération automatique de fichiers JavaScript et de déclarations de types
Les inconvénients de TypeScript
- Il existe une courbe d’apprentissage → c’est plus complexe que JavaScript
- Des problèmes peuvent survenir si certains packages npm n’ont pas de définitions de types ou si celles-ci sont incorrectes
- La configuration de
tsconfig.jsonpeut être complexe- Le problème peut être atténué en adoptant des paramètres aussi stricts que possible
- Le rôle de
tsconfig.jsonse simplifie à mesure que le type stripping devient plus clair
FAQ TypeScript
Le code TypeScript n’est-il pas trop lourd ?
- TypeScript permet d’écrire du code avec un minimum de définitions de types grâce à l’inférence de types
- Il peut être utile même sans annotations de types complexes
TypeScript cherche-t-il à transformer JavaScript en C# ou en Java ?
- Au départ, il a ajouté des éléments comme les classes, les modules et les énumérations pour compenser certaines limites de JavaScript
- Aujourd’hui, TypeScript évolue en s’alignant sur le standard ECMAScript
- Les fonctionnalités absentes de JavaScript ne sont pas ajoutées à TypeScript
TypeScript ne prend-il en charge que la programmation orientée objet (OOP) ?
- TypeScript prend aussi très bien en charge les patterns de programmation fonctionnelle
- Par exemple, les
discriminated unionsont souvent utilisées en programmation fonctionnelle
Faut-il absolument apprendre les définitions de types complexes ?
- Dans la plupart des cas, une définition de types simple suffit pour utiliser TypeScript
- Les définitions de types complexes sont utiles pour écrire des bibliothèques, mais ne sont pas nécessaires dans un usage courant
Combien de temps faut-il pour apprendre TypeScript ?
- Les concepts de base peuvent s’apprendre en une journée
- Il est possible d’écrire du code simple et de déboguer dès le lendemain
- On peut ensuite apprendre progressivement les types complexes et les fonctionnalités avancées
Lectures suivantes
- What is TypeScript?
- Tackling TypeScript (gratuit)
4 commentaires
Le typage fort a des avantages, c'est pareil en C++ aussi
Passer de JavaScript à TypeScript, c’est comme développer les yeux fermés puis les ouvrir d’un coup. La sécurité apportée par les types, l’autocomplétion et la combinaison avec Copilot.
Les équipes de notre entreprise ont lancé leurs projets en disant que JavaScript suffisait, mais maintenant elles sont toutes en train de migrer vers TypeScript.
Je pense que le facteur de succès qui a permis à TypeScript de l’emporter sur Dart, c’est qu’il ne remplace pas JavaScript mais le complète. Je suis vraiment content de l’avoir appris.