Annotations de TypeScript en Français

Introduction aux Annotations de Type

TypeScript est un langage qui apporte une couche typée à JavaScript, permettant aux développeurs de spécifier clairement le type de leurs variables, fonctions et classes. Bien que TypeScript soit capable d'inférer des types dans la plupart des cas, certaines situations, comme des variables non initialisées ou des membres d'interfaces, nécessitent des annotations explicites. Ces annotations sont précieuses pour éviter les erreurs typographiques à l'exécution.

Syntaxe des Annotations de Type

Les annotations de type sont constituées d'un deux-points (:) suivi du nom d'un type. Elles se placent juste après le nom de l'élément pour lequel le type est déclaré. Voici quelques exemples :

// Membres de classe et d'interface
class MaClasse {
  membreUn: string;
  membreDeux: string;
}

interface MonInterface {
  membreUn: string;
  membreDeux: number;
  membreTrois: boolean;
}

// Paramètres de fonction
function maFonction(membreUn: string, membreDeux: string) {
  // ...
}

// Valeur de retour de fonction
function maFonctionAvecRetour(membreUn: string, membreDeux: string): string {
  return membreUn + membreDeux;
}

// Variables
let maVariable: string = "Bonjour, le monde !";

Utilisation des Annotations de Type avec les Dates

Dans l'exemple ci-dessous, la variable date n'a pas de valeur initiale, mais possède une annotation de type Date. Lorsque date reçoit effectivement une valeur, celle-ci doit être de type Date. La première affectation avec new Date est correcte, alors que la seconde affectation à un nombre, 10.31, ne l'est pas :

let date: Date;
date = new Date('2021-10-31'); // Correct
// date = 10.31; // Erreur : le type 'number' n'est pas assignable au type 'Date'.

Annotations de Type et Compilation

Il est important de noter que les annotations de type en TypeScript ne sont pas présentes dans le JavaScript compilé, car elles sont spécifiques à TypeScript. En retirant les commentaires de l'exemple précédent, le code après compilation ressemblerait à ceci :

let date;
date = new Date('2021-10-31');
// date = 10.31; // s'il était décommenté, cela causerait une erreur lors de l'utilisation