注释和装饰器有什么区别?

时间:2016-05-19 08:21:33

标签: typescript angular

我很困惑何时使用术语注释以及何时使用装饰器?

 @Component({
      selector: 'tabs',
      template: `
      `
    })
    export class Tabs {

    }

3 个答案:

答案 0 :(得分:7)

装饰器对应于在类上调用的函数,而注释只是"只有"使用Reflect元数据库在类上设置的元数据。

使用TypeScript和ES7,@Something是一个装饰器。在Angular2的上下文中,像@Component@Injectable,...这样的装饰器使用Reflect.defineMetadata方法定义了装饰元素的元数据。

这个问题让你感兴趣的是找出装饰者究竟是什么:

答案 1 :(得分:0)

Traceur给了我们annotations。 TypeScript为我们提供了decorators。但Angular 2支持两者。

注释创建“注释”数组。 而装饰器是接收装饰对象的函数,可以对它们进行任何更改。

由于角度使用TypeScript而不是atScript所以它使用装饰器。基本上有四种装饰器 是

  • 类装饰器,例如@Component和@NgModule
  • 类内属性的属性修饰符,例如@Input和@Output
  • 类内部方法的方法装饰器,例如@HostListener
  • 类构造函数内参数的参数装饰器,例如@Inject

有关详细信息,请参阅

答案 2 :(得分:0)

在Angular中,注释用于创建注释数组。它们只是使用Reflect Metadata库的类的元数据集。

Angular中的装饰器是用于在不更改原始源代码的情况下分隔装饰或修改某些类的设计模式。