Le langage JavaScript a toujours présenté les mêmes faiblesses : pas de typage des variables, absence de classes comme dans les autres langages… Ces faiblesses font que lorsque l’on commençait à écrire beaucoup de code, on arrivait vite à un moment où on s’emmêlait les pinceaux !
Notre code devient redondant, perd en élégance et devient de moins en moins lisible : on parle de code spaghetti. (Vous comprendrez tous seuls la référence aux célèbres pâtes italiennes !)
La communauté des développeurs, ainsi que certaines entreprises, se sont donc mises à développer des métalangages pour JavaScript : CoffeeJS, Dart, et TypeScript en sont les exemples les plus célèbres. Ces outils apportent également de nouvelles fonctionnalités qui font défaut au JavaScript natif, avec une syntaxe moins verbeuse.
Par exemple, TypeScript permet de typer vos variables, ce qui permet d’écrire du code plus robuste. Une fois que vous avez développé votre application avec le métalangage de votre choix, vous devez le compiler, c’est-à-dire le transformer en du code JavaScript que le navigateur pourra interpréter.
En effet, votre navigateur ne sait pas interpréter le CoffeeJS, ni le Dart, ni le TypeScript. Vous devez d’abord compiler ce code en JavaScript pour qu’il soit lisible par votre navigateur.
Puisque ces méta-langages produisent du JavaScript au final, pourquoi je ne développerais pas directement en JavaScript ? (Pourquoi s’embêter avec cette étape intermédiaire ?)
En effet, c’est une excellente question. En théorie, on pourrait effectivement se passer de métalangages et réécrire nous-même les éléments dont nous avons besoin. En pratique, c’est très différent :
Autant vous dire que vous en auriez pour trop longtemps pour que ça en vaille la peine. Ne perdons plus de temps et voyons tout de suite le lien entre TypeScript et ce qui nous intéresse : Angular.