4 points par GN⁺ 2025-03-25 | 4 commentaires | Partager sur WhatsApp
  • 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 comme string, 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 : case manquants dans une instruction switch
    • Une erreur se produit si tous les case d’une instruction switch ne sont pas traités
    • Une erreur se produit si l’exigence selon laquelle la valeur restante doit être de type never n’est pas respectée
  • 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.json peut être complexe
    • Le problème peut être atténué en adoptant des paramètres aussi stricts que possible
    • Le rôle de tsconfig.json se 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 union sont 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

4 commentaires

 
skrevolve 2025-03-26

Le typage fort a des avantages, c'est pareil en C++ aussi

 
slowandsnow 2025-03-25

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.

 
bungker 2025-03-25

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.

 
tsboard 2025-03-25

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.