Aller au contenu
Accueil / TypeScript, un passage obligé ?

TypeScript, un passage obligé ?

  •  

TypeScript, TS pour les intimes, est un langage de programmation open source créé par Microsoft et dévoilé en 2012. Son auteur, Anders Hejlsberg, également concepteur du framework .NET et du langage Turbopascal, n’avait pas pour but de remplacer JavaScript. En effet, JavaScript étant présent sur presque tous les navigateurs du monde, il serait très compliqué d’y remplacer JavaScript par une autre technologie et cela prendrait un temps considérable. Hejlsberg a donc utilisé une pirouette.

TS est une sur-couche ajoutée à JavaScript afin d’apporter un certain nombre de fonctionnalités supplémentaires

Au sommaire :

  1. Les faiblesses de JavaScript
  2. Le JavaScript natif est déjà du TypeScript valide
  3. La bascule de l’écosystème JavaScript vers TypeScript
  4. D’autres solutions de typage
  5. Un typage natif en JS ?
  6. Conclusion
  7. Aller plus loin

1- Les faiblesses de JavaScript

C’est un fait en effet, même avec ES2015, certaines fonctionnalités importantes manquent toujours à JS pour les gros projets, tels que la pré-déclaration des propriétés, les modificateurs de visibilité ou les interfaces. En outre, ses défauts de jeunesse sont toujours là, en particulier ceux liés au typage faible (dans aucun autre langage on ne se retrouve avec des aberrations telles que ===, NaN, undefined, ‘[object Object]’, etc).

2- Le JavaScript natif est déjà du TypeScript valide

TypeScript ajoute toutes ces fonctionnalités manquantes d’une façon très intelligente. Ainsi, du JavaScript natif est déjà du TypeScript valide. Les nouveautés sont ainsi complètement optionnelles, et vous pouvez revenir à du JS pur à tout moment. C’est ça la pirouette d’Hejlsberg !

Transpilation par TypeScript

L’idée est donc d’écrire en TS, puis de transpiler en JavaScript dans la version ECMAScript de notre choix… Et c’est TS qui s’occupe de cette transpilation directement, sans faire appel à d’autres outils tels que Babel !

JavaScript / TypeScript, une histoire de poupées russes

3- La bascule de l’écosystème JavaScript vers TypeScript

TS est imposé d’origine sur Angular, mais reste facultatif sous Vue.js et React. Néanmoins, que ce soit Node.js, React ou Vue.js, tout l’écosystème JavaScript se met progressivement au Typescript et le phénomène s’amplifie d’année en année.

Ainsi, selon le State of JS 2022, 20.7 % des développeurs JS sont passés au 100% TypeScript, auxquels s’ajoutent 17.6% qui n’en sont plus très loin (soit 38.3%). A contrario, seulement 8.2% sont encore en 100% JavaScript.

La bascule JavaScript / TypeScript – State of JS 2022

En effet, TS est un langage multi paradigmes. On peut faire du fonctionnel, comme de l’orienté objet et pas de l’orienté objet via prototype comme en JavaScript. La combinaison POO / Typage fort change tout. Le JS qui en sort après transpilation est comme renforcé contre les bugs éventuels.

De plus, la plupart des libraries qu’on connait sous JavaScript se rendent progressivement compatibles TypeScript, ce qui veut dire que l’apprentissage de nos outils favoris (tels que Three, React Hook Form, Yup, React Router, React Query, Jest, etc) reste valable !

4- D’autres solutions de typage

TS n’est pas la seule solution pour donner un typage à JS

Reason

Reason, poussé par Facebook, se veut un challenger de TypeScript dans le monde des langages à transpilation. Mais ce dernier a plusieurs longueurs d’avance sur tous ses concurrents, qui restent peu utilisés (PureScript, Elm, ClojureScript, Flow…)

Les proptypes

Pour être tout à fait complet, ajoutons qu’avec React, on peut typer des données avec les proptypes… Mais ce n’est pas natif de JS.

5- Un typage natif en JS ?

Microsoft (le créateur de TypeScript) a publié une proposition officielle pour une syntaxe de type dans ECMAScript, la norme officielle de JavaScript. Néanmoins : « Une proposition comme celle-ci fera l’objet de nombreux retours et d’un examen minutieux. Elle peut impliquer de nombreux changements de conception en cours de route, et peut prendre des années avant de donner des résultats. ».

Le comité TC39 a de son côté admis une proposition d’annotation de type directement dans JS. Mais la proposition n’en est qu’au stade 1 sur 4, et ces annotations seraient moins complètes que dans TS, même si la syntaxe serait similaire, au grand dam de certains.


Les types nativement dans JS, ce n’est donc pas encore pour ES 2023 !

6- Conclusion

Alors, végéter dans les 8.2% qui sont encore en 100% JavaScript, ou rester dans la course en basculant vers TypeScript? Se poser la question, c’est déjà y répondre.

Pourquoi passer à TypeScript ? – Mike Codeur

Ayant terminé avec succès ma formation de développeur web de la Wild Code School, où j’ai pris part à plusieurs projets en équipe avec Git/Github, je me spécialise actuellement sur React avec le programme React Mastery

Et l’étape suivante de ma roadmap sera donc… TypeScript !

Aller plus loin

Pourquoi TypeScript est plus facile que JavaScript – Alors on dev (30 min)

Lisez aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partagez
Tweetez
Partagez