TypeScript est un langage open-source pris en charge par Microsoft, qui s'appuie sur JavaScript en ajoutant une fonction de type statique facultative. Les types fournissent un moyen de structurer et de valider son code avant de l'exécuter. 

La complexité de la base de code d'un projet JavaScript a tendance à croître de manière exponentielle à chaque nouvelle ligne de code, ce qui le rend extrêmement difficile à maintenir. La popularité croissante de JavaScript sur le serveur a aggravé les choses, car le backend est généralement beaucoup plus compliqué que le frontend. C'est alors que Microsoft a créé TypeScript pour résoudre ce problème.

 

 

Qu’est ce que le TypeScript ?

TypeScript est un sur-ensemble typé qui a pour but d'améliorer et de sécuriser la production de code JavaScript. Tous les frameworks front n'utilisent pas TypeScript mais cela reste une bonne option pour la sécurité du code.

TypeScript et JavaScript

Voici quelques raisons d'ajouter un type statique à JavaScript :

  • Éviter les erreurs ninja cachées 
  • Plus facile de remanier le code sans le casser de manière significative.
  • S'orienter dans des systèmes complexes et à grande échelle n'est plus un cauchemar.

La liberté du type dynamique conduit souvent à des bogues qui non seulement réduisent l'efficacité du travail du programmeur, mais peuvent aussi paralyser le développement en raison de l'augmentation des coûts d'ajout de nouvelles lignes de code.

Par conséquent, l'incapacité de JavaScript à intégrer des éléments tels que les types et les contrôles d'erreurs de compilation en fait un mauvais choix pour le code côté serveur dans les sociétés et les grandes bases de données. 

Comment apprendre à utiliser TypeScript ?

TypeScript est essentiellement un linter JS. Ou, JS avec une documentation que le compilateur peut comprendre.

Par conséquent, contrairement à d'autres langages comme CoffeeScript ou PureScript , il n’est pas nécessaire d'apprendre beaucoup pour commencer à écrire du code TypeScript.

Les types dans TypeScript sont facultatifs, et chaque fichier JavaScript est un fichier TypeScript valide. Bien que le compilateur n’aime pas quand il y a des erreurs de types dans les fichiers initiaux, il rend un fichier JavaScript qui fonctionne. 

Que sont les types, et comment fonctionnent-ils dans TypeScript ?

Les types sont un moyen de distinguer les programmes corrects des programmes incorrects avant de les exécuter, en décrivant dans son code comment est prévu l’utilisation des données. Ils peuvent varier de types simples comme Number et String à des structures complexes parfaitement modélisées.

Les langages de programmation se divisent en deux catégories : les types statiques et les types dynamiques.

Dans les langages à typage statique, le type de la variable doit être connu au moment de la compilation. Si une variable est déclarée, le compilateur doit savoir (ou pouvoir en déduire) s'il s'agit d'un nombre, d'une chaîne de caractères ou d'un booléen. 

Dans les langages à typage dynamique, ce n'est pas nécessairement le cas. Le type d'une variable n'est connu qu'au moment de l'exécution du programme. 

TypeScript peut prendre en charge le type statique, alors que JavaScript ne le fait pas.

En raison du typage statique de TypeScript, certains éléments devront être travaillés :

  • Introduire des variables indéfinies (aide pour les avertissements à la compilation)
  • Additionner deux chaînes de caractères contenant des chiffres (comme "4" + "20" = "420")
  • Faire des opérations sur des choses qui ne leur permettent pas, comme par exemple la réduction d'un numéro.

Les systèmes de types statiques permettent de créer ses propres types de données composites. Cela permet aux développeurs d'exprimer leurs intentions de manière plus détaillée.

Les types explicites permettent également au code de s'auto-documenter : ils garantissent que les variables et fonctions correspondent à ce qui est prévu et permettent à l'ordinateur de se souvenir du contexte environnant.

Types de TypeScript

TypeScript comporte une variété de types de base : Booléen, Nombre, Chaîne, Tableau, Tuple, etc. Certains d'entre eux n'existent pas dans JavaScript

Quelques types de TypeScript :

Types Any & Unknown

Le type “Any” peut couvrir tout ce qu’on veut, “Unknown” est son homologue qui assure la sûreté du type.

Pour échapper au système de typage, “any” permet de lui attribuer n'importe quelle variable JavaScript. Il est fréquemment utilisé pour modéliser des variables entrantes (provenant d'API tierces, par exemple) qui n'ont pas encore été vérifiées et dont le type est inconnu.

“Unknown” ressemble beaucoup à “any”, mais il ne permet pas d'effectuer des opérations sur la variable avant qu'elle ne soit explicitement vérifiée par le système de types.

Type Never

Never est le type de retour pour quelque chose qui ne devrait jamais se produire, comme une fonction qui va lancer une exception.

Type Void

Void est utilisé lorsqu'il n'y a pas de valeur de retour.

Types Intersection & Union

Ils permettent de créer des types personnalisés.

Les types Intersection permettent de regrouper plusieurs types de base dans un seul type. 

Les types Union permettent au type de prendre l'un des multiples types de base. 

Si les types sont considérés comme des espaces, tous ces types prennent rapidement un sens.

Les types dans TypeScript peuvent être à la fois implicites et explicites. Si les types ne sont pas explicitement écrits, le compilateur utilisera l'inférence de type pour déduire les types utilisés.

TypeScript vs. JavaScript

TypeScript est plus fiable

Contrairement à JavaScript, le code TypeScript est plus fiable et plus facile à remanier. Cela permet aux développeurs d'éviter les erreurs et de procéder à des réécritures beaucoup plus facilement.

Les types invalident la plupart des erreurs stupides qui peuvent se glisser dans les bases de code JavaScript, et créent une boucle de rétroaction rapide pour corriger toutes les petites erreurs lors de l'écriture de nouveau code et du remaniement.

TypeScript est plus explicite

Rendre les types explicites permet de faire un focus sur la manière dont le système est exactement construit et dont les différentes parties de celui-ci interagissent les unes avec les autres. Dans les systèmes à grande échelle, le typage permet l'abstraction du reste du système tout en gardant le contexte.

TypeScript et JavaScript sont pratiquement interchangeables.

Comme JavaScript est un sous-ensemble de TypeScript, il est possible d’utiliser toutes les bibliothèques JavaScript dans son code TypeScript.

La plupart des bibliothèques JavaScript ont des types : Definitely Typed est un dépôt de types pour un grand nombre de bibliothèques JavaScript utilisées pour rendre les interactions avec elles plus sûres.