Maison > interface Web > js tutoriel > Les Décorateurs en TypeScript

Les Décorateurs en TypeScript

DDD
Libérer: 2024-12-06 18:06:16
original
327 Les gens l'ont consulté

Les Décorateurs en TypeScript

Les décorateurs en TypeScript sont une fonctionnalité puissante qui permet d'ajouter des métadonnées ou de modifier le comportement des classes, des méthodes, des propriétés ou des paramètres. Ils sont souvent utilisés dans des frameworks comme Angular pour enrichir les composants et les services. Que vous soyez débutant ou développeur expérimenté, cet article vous guide pas à pas dans la création de vos propres décorateurs pour enrichir vos applications TypeScript.

Pré-requis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Une compréhension de base de TypeScript.
  • TypeScript configuré avec l'option experimentalDecorators activée dans votre fichier tsconfig.json :
{
  "compilerOptions": {
    "experimentalDecorators": true
  }
}
Copier après la connexion
Copier après la connexion

Qu'est-ce qu'un décorateur ?

Un décorateur est une fonction appliquée à une classe, une méthode, une propriété ou un paramètre. Précédé du symbole @, un décorateur peut modifier ou enrichir l'élément auquel il est attaché. Ses principales utilisations incluent :

  • Ajouter des métadonnées : utile pour fournir des informations supplémentaires sur une classe ou une propriété.
  • Modifier le comportement : permet de changer dynamiquement le fonctionnement d'une méthode ou d'une classe.
  • Injecter des dépendances : pratique dans les architectures modulaires.

Création d'un Décorateur de Composant

Étape 1 : Définir le Décorateur

Nous allons créer un décorateur qui ajoute une propriété componentName à une classe.

function Component(name: string) {
    return function (constructor: Function) {
        constructor.prototype.componentName = name;
    };
}
Copier après la connexion
Copier après la connexion

Explication :

Ce décorateur reçoit une chaîne name et l'ajoute comme propriété sur le prototype de la classe. Toutes les instances de cette classe auront accès à cette propriété.

Étape 2 : Appliquer le Décorateur

Appliquons le décorateur à une classe.

@Component('MonComposant')
class MonComposant {
    constructor() {
        console.log(`Le nom du composant est : ${this.componentName}`);
    }
}
Copier après la connexion

Étape 3 : Tester le Décorateur

Créons une instance de la classe pour vérifier son fonctionnement.

const composant = new MonComposant(); 
// Affiche : Le nom du composant est : MonComposant
Copier après la connexion

Création d'un Décorateur d'Input

Étape 1 : Définir le Décorateur d'Input

Ce décorateur surveille et journalise les modifications d'une propriété.

function Input() {
    return function (target: any, propertyKey: string) {
        let value: any;

        const getter = () => {
            return value;
        };

        const setter = (newValue: any) => {
            console.log(`La valeur de ${propertyKey} a été mise à jour : ${newValue}`);
            value = newValue;
        };

        Object.defineProperty(target, propertyKey, {
            get: getter,
            set: setter,
            enumerable: true,
            configurable: true,
        });
    };
}
Copier après la connexion

Explication :

Le décorateur utilise Object.defineProperty pour intercepter les modifications de la propriété. Cela permet d’ajouter une logique personnalisée, comme la journalisation des changements.

Étape 2 : Appliquer le Décorateur d'Input

Appliquons-le à une propriété.

{
  "compilerOptions": {
    "experimentalDecorators": true
  }
}
Copier après la connexion
Copier après la connexion

Étape 3 : Tester le Décorateur d'Input

Modifiez la propriété pour observer l'effet.

function Component(name: string) {
    return function (constructor: Function) {
        constructor.prototype.componentName = name;
    };
}
Copier après la connexion
Copier après la connexion

Conclusion

Les décorateurs en TypeScript offrent une manière élégante et puissante d'ajouter des fonctionnalités et des métadonnées à vos classes et propriétés. En suivant cet article, vous avez appris à :

  1. Créer un décorateur de composant pour enrichir une classe.
  2. Implémenter un décorateur d'input pour surveiller les modifications des propriétés.

Ces exemples simples montrent comment les décorateurs peuvent améliorer la lisibilité et la maintenabilité de votre code. Explorez davantage la documentation officielle TypeScript pour découvrir des applications encore plus avancées, comme l'utilisation des métadonnées réfléchies avec Reflect.metadata.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal