TypeScript - Was ist der Unterschied zwischen Annotation und Dekorator?
Ich bin verwirrt, wann ich den Begriff Annotation verwenden soll und wann ich Decorator verwenden soll?
@Component({
selector: 'tabs',
template: `
`
})
export class Tabs {
}
Antwort #1
Ein Dekorateur entspricht einer Funktion, die auf der Klasse aufgerufen wird, während Annotationen „nur“ Metadaten sind, die mit der Reflect-Metadata-Bibliothek auf der Klasse gesetzt werden.
Mit TypeScript und ES7 ist @Something ein Dekorator. Im Kontext von Angular2 definieren Dekoratoren wie @Component, @Injectable, ... Metadaten für das dekorierte Element mithilfe der Methode Reflect.defineMetadata.
Diese Frage könnte Sie interessieren, um herauszufinden, was ein Dekorateur eigentlich ist:
- Wie werden Decorators (Annotationen) in TypeScript kompiliert?