TypeScriptLeçon 5 sur 16

Objets et interfaces

Une interface décrit la forme d'un objet : ses champs et leurs types. Tout objet déclaré avec ce type doit la respecter.

L’essentiel

  • interface User { id: number; name: string } : un nom et une liste de champs.
  • Un ? rend un champ optionnel : email?: string.
  • extends ajoute des champs à une interface existante.
  • Si un champ obligatoire manque, TypeScript indique lequel.

Exemple

interface User {  id: number;  name: string;  email?: string; // optional property} interface Admin extends User {  permissions: string[];} const anna: User = { id: 1, name: "Anna" };const ben: Admin = { id: 2, name: "Ben", email: "ben@example.com", permissions: ["edit"] };// const ghost: User = { id: 3 }; // error: property 'name' is missing function contact(user: User): string {  return user.email ?? "no email";} console.log(`${anna.name}: ${contact(anna)}`);console.log(`${ben.name}: ${contact(ben)}, can ${ben.permissions.join(", ")}`);

Admin reprend tous les champs de User et ajoute permissions. Un objet sans name échoue à la vérification, et un email absent est remplacé par un texte grâce à ??.

Exercice

Utiliser l’éditeur⌘ Entrée ou Ctrl Entrée lance le code, ⇧ ⌘ Entrée vérifie l’exercice.Tab et Maj Tab indentent la ligne ou la sélection ; Échap puis Tab quitte l’éditeur.La vérification compare ce que le programme a affiché à l’exercice ; les espaces en fin de ligne ne comptent pas.Après deux vérifications ratées, la solution s’ouvre. Votre code reste dans ce navigateur.

Complétez CartItem avec quantity et un gift optionnel, faites renvoyer à lineTotal le prix multiplié par la quantité, puis affichez « Mug: 16 (gift) » et « Tea: 15 ».

Sortie

Ce que le programme affiche apparaîtra ici.