Dekoratoren in TypeScript sind eine leistungsstarke Funktion, mit der Sie Metadaten hinzufügen oder das Verhalten von Klassen, Methoden, Eigenschaften oder Parametern ändern können. Sie werden häufig in Frameworks wie Angular verwendet, um Komponenten und Dienste anzureichern. Unabhängig davon, ob Sie Anfänger oder erfahrener Entwickler sind, führt Sie dieser Artikel Schritt für Schritt durch die Erstellung Ihrer eigenen Dekoratoren, um Ihre TypeScript-Anwendungen zu verbessern.
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
{ "compilerOptions": { "experimentalDecorators": true } }
Ein Dekorator ist eine Funktion, die auf eine Klasse, Methode, Eigenschaft oder einen Parameter angewendet wird. Mit dem vorangestellten Symbol @ kann ein Dekorateur das Element, an das es angehängt ist, ändern oder bereichern. Zu seinen Hauptanwendungen gehören:
Wir erstellen einen Dekorator, der einer Klasse eine KomponenteName-Eigenschaft hinzufügt.
function Component(name: string) { return function (constructor: Function) { constructor.prototype.componentName = name; }; }
Erklärung:
Dieser Dekorateur empfängt eine Namenszeichenfolge und fügt sie als Eigenschaft zum Klassenprototyp hinzu. Alle Instanzen dieser Klasse haben Zugriff auf diese Eigenschaft.
Lassen Sie uns den Dekorator auf eine Klasse anwenden.
@Component('MonComposant') class MonComposant { constructor() { console.log(`Le nom du composant est : ${this.componentName}`); } }
Lassen Sie uns eine Instanz der Klasse erstellen, um zu überprüfen, wie sie funktioniert.
const composant = new MonComposant(); // Affiche : Le nom du composant est : MonComposant
Dieser Dekorateur überwacht und protokolliert Änderungen an einer Eigenschaft.
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, }); }; }
Erklärung:
Der Dekorateur verwendet Object.defineProperty, um Änderungen an der Eigenschaft abzufangen. Dadurch können Sie benutzerdefinierte Logik hinzufügen, z. B. die Änderungsprotokollierung.
Lassen Sie es uns auf eine Immobilie anwenden.
{ "compilerOptions": { "experimentalDecorators": true } }
Ändern Sie die Eigenschaft, um den Effekt zu beobachten.
function Component(name: string) { return function (constructor: Function) { constructor.prototype.componentName = name; }; }
TypeScript-Dekoratoren bieten eine elegante und leistungsstarke Möglichkeit, Ihren Klassen und Eigenschaften Funktionalität und Metadaten hinzuzufügen. Durch das Befolgen dieses Artikels haben Sie Folgendes gelernt:
Diese einfachen Beispiele zeigen, wie Dekorateure die Lesbarkeit und Wartbarkeit Ihres Codes verbessern können. Entdecken Sie weitere offizielle TypeScript-Dokumentationen, um noch erweiterte Anwendungen zu entdecken, wie z. B. die Verwendung reflektierter Metadaten mit Reflect.metadata.
Das obige ist der detaillierte Inhalt vonDekorateure in TypeScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!