particularité JS
JS est basé sur une boucle d’événements :
→ Limite les performances (notamment l’utilisation du processeur)
→ Ajoute une latence imprévisible
→ Très simple à utiliser : on connaît l’ordre d’exécution du code
Ce fonctionnement est caractéristique de JS
JS est exécuté sur un seul et unique thread :
→ N’exploite pas plusieurs processeurs
→ Ne permet pas de d’exécuter du code de manière parallélisé
→ Aucun souci de concurrence / cohérence des données
→ Possibilité d’utiliser des API, paquets et workers pour paralléliser
Cet aspect simplifie largement le code mais empêche de nombreuses
optimisations
Que fait TS par rapport à JS
TS vient par dessus JS pour l’enrichir et le contraindre
→ Il s’agit de sucre syntaxique qui disparaît à la transcompilation
→ TS n’est pas un langage exécutable tel quel
TS est intimement lié à JS : toute la logique est écrite en JS, TS n’y
ajoute que des types
L’interpréteur ne sait exécuter que du JS. Alors tout code TS sera
d’abord traduit en JS puis interprété, les types disparaissent
A quoi sert TS ?
TS permet de tester notre code avant de le traduire, il assure qu’il
fonctionnera théoriquement bien
Pourquoi utiliser TS
→ TS permet de typer :
→ Gain en qualité de code
→ En maintenabilité du code, donc en pérennité
→ En lisibilité, en documentation, en autocomplétion et donc en
productivité
→ TS est un outil de tests statiques = un code théoriquement
fonctionnel
→ TS enrichit JS avec de nouvelles fonctionnalités / patterns
Cependant TS est plus contraignant et dans certains cas, les types ne
sont pas faciles à trouver