В чем разница между аннотацией и декоратором?
Я смущен, когда использовать аннотацию термина и когда использовать декоратор ?
@Component({
selector: 'tabs',
template: `
`
})
export class Tabs {
}
2 ответов
декоратор соответствует функции, которая вызывается в классе, тогда как аннотации являются" только " метаданными, установленными в классе с помощью библиотеки метаданных Reflect.
С TypeScript и ES7,@Something
- декоратор. В контексте Angular2, декораторы, как @Component
, @Injectable
, ... определите метаданные для элемента decorated с помощью Reflect.defineMetadata
метод.
этот вопрос может вас заинтересовать, чтобы узнать, что на самом деле декоратор есть:
Traceur дает нам annotations
. Машинопись дает нам decorators
. Но Angular 2 поддерживает оба.
аннотации создайте массив "аннотации". в то время как декораторы-это функции, которые получают украшенный объект и могут вносить в него любые изменения.
в качестве углового используйте TypeScript вместо atScript, поэтому он использует декораторы. Есть в основном четыре вида декораторов есть которые
- декораторы класса, например @Component и @NgModule
- декораторы свойств для свойств внутри классов, например @Input и @Output
- декораторы методов для методов внутри классов, например @HostListener
- декораторы параметров для параметров внутри конструкторов классов, например @Inject
Для больше в глубине вы можете сослаться