The decorator corresponds to the function called in the class, while annotations are the "only" metadata defined in the class using the Reflect metadata library.
With TypeScript and ES7, @Something is a decorator. In the context of Angular2, decorators such as @Component , @Injectable , ... define metadata for a decorated element using the Reflect.defineMetadata method.
This question may interest you to find out what the decorator is actually:
source share