… et quel est l’avantage d’utiliser typescript ?

Javascript est un langage qui effectue un typage dynamique des variables : en fonction de la valeur attribuée, il identifie quel est son type et l’applique.

Il permet également de réassigner une variable à un autre type aussi simplement que cela. Concrètement je peux stocker une chaine de caractères dans une variable, puis plus tard y stocker un tableau.

var maVariable = "Je stocke une chaine de caracteres";
console.log(maVariable) //Je stocke une chaine de caracteres

maVariable = ["et", "ensuite", "un", "tableau"];
console.log(maVariable) //[ 'et', 'ensuite', 'un', 'tableau' ]

Cet aspect de javascript lui vaut une image de langage utilisant un typage faible, même si des fois (on ne va pas se mentir), ce principe est assez confortable !

Ben alors pourquoi ?

Lorsque l’on commence à travailler sur des projets plus conséquents et que l’on utilise différentes fonctions qui sont elle-mêmes stockées dans d’autres fichiers, le typage va empêcher les erreurs et faire gagner du temps.

Lorsque l’on travaille avec javascript, c’est en général à ce moment que typescript entre en jeu.

Typescript permet de définir le type de donnée contenue dans une variable et de le verrouiller. Si je reprends l’exemple précédent :

var maVariable: string = "Je stocke une chaine de caracteres";
console.log(maVariable) //Je stocke une chaine de caracteres

maVariable = ["et", "ensuite", "un", "tableau"]; //error TS2322: Type string[]' is not assignable to type 'string'.

Une erreur est levée par le compilateur typescript. En réalité cette erreur était déjà visible dans mon IDE pour me permettre de corriger sans avoir à compiler mon fichier.

Exemple

Nous développons une fonction qui fait appel à une autre fonction qui va effectuer une recherche dans la base de données et retourner un objet json que nous allons exploiter.

Grâce à typescript, le typage va nous contraindre à utiliser strictement le type retourné par la fonction.

Ainsi, sans connaitre le fonctionnement de la fonction appelée, mais juste en utilisant le type de retour, nous évitons les erreurs car si le type n’est pas respecté, le compilateur va le signaler et arrêter l’exécution du code.

De plus les IDE modernes vont proposer les clef dans l’auto-complétion du code.

Conclusion

Le typage permet de cadrer le développement et prend toute son sens lorsque le projet gagne en envergure et ou on doit introduire une certaine rigueur et donner de la cohérence à l’ensemble.

Ressources

Très bonne introduction a typescript (en) : https://youtu.be/BwuLxPH8IDs