Les nouveautés d'Angular 19 en 4 minutes

Angular 19 vient de sortir, et il y a beaucoup de nouveautés intéressantes : hydratation incrémentale, linkedSignal, l'API des ressources, et plein d'autres choses. Venez découvrir tout ça en moins de 4 minutes !

Skip to content

Vous souhaitez recevoir de l'aide sur ce sujet ? rejoignez la communauté Angular.fr sur Discord.

Les génériques

Les types génériques en TypeScript offrent un moyen de créer des composants qui peuvent travailler avec une variété de types plutôt qu'un seul. Cela ajoute une couche de flexibilité et de réutilisabilité à vos fonctions, classes, interfaces, et autres structures, tout en conservant les avantages du typage fort.

Concept de Type Générique

Un type générique est un type qui est lié à un autre type spécifié au moment de l'utilisation. Cela permet aux composants de traiter différents types sans perdre l'information de type.

Exemple de Fonction Générique

typescript
function identite<T>(arg: T): T {
    return arg;
}

Dans cet exemple, T est un type générique. Lorsque vous utilisez la fonction identite, vous pouvez spécifier le type :

typescript
let sortieString = identite<string>("maChaine");
let sortieNumber = identite<number>(100);

Types Génériques avec Interfaces

Vous pouvez aussi utiliser les types génériques dans les interfaces pour définir des structures de données flexibles.

typescript
interface Reponse<T> {
    status: number;
    message: T;
}

let reponseString: Reponse<string> = {status: 200, message: "Ok"};
let reponseObjet: Reponse<{ data: string }> = {status: 200, message: {data: "Données"}};

Types Génériques avec Classes

Les classes peuvent également être génériques, ce qui est utile pour les structures de données comme les piles, les files, les arbres, etc.

typescript
class Pile<T> {
    private elements: T[] = [];

    push(element: T) {
        this.elements.push(element);
    }

    pop(): T | undefined {
        return this.elements.pop();
    }
}

let pileDeNombres = new Pile<number>();
pileDeNombres.push(1);

Contraintes de Type Générique

Les types génériques peuvent être contraints à respecter certaines formes ou structures, en utilisant extends.

typescript
function prop<T extends { id: number }>(obj: T) {
    return obj.id;
}

let objAvecId = {id: 2, nom: "Objet"};
let id = prop(objAvecId); // Fonctionne

Utilisation des Types Génériques

  • Flexibilité : Les types génériques permettent de créer des composants qui peuvent être utilisés avec différents types.
  • Réutilisabilité : Ils augmentent la réutilisabilité du code.
  • Sécurité de Type : Ils maintiennent la sécurité de type en permettant aux développeurs de spécifier des types explicites.

Chaque mois, recevez en avant-première notre newsletter avec les dernières actualités, tutoriels, astuces et ressources Angular directement par email !