typescript 注解和装饰器之间有什么区别?

ljsrvy3e  于 2022-11-18  发布在  TypeScript
关注(0)|答案(3)|浏览(163)

我很困惑什么时候使用术语注解,什么时候使用装饰器?

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

    }
uhry853o

uhry853o1#

装饰器对应于在类上调用的函数,而注解是使用反射元数据库在类上设置的“唯一”元数据。
对于TypeScript和ES7,@Something是一个装饰器。在Angular2的上下文中,像@Component@Injectable ...这样的装饰器使用Reflect.defineMetadata方法为装饰的元素定义元数据。
这个问题可能会让你有兴趣了解什么是装饰师:

mrfwxfqh

mrfwxfqh2#

Traceur给出了annotations,TypeScript给出了decorators,但Angular 2同时支持这两种情况。
注解创建一个“annotations”数组。而装饰器是接收装饰对象的函数,可以对其进行任何更改。
因为angular使用TypeScript而不是atScript,所以它使用了装饰器。

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

有关详细信息,请参阅

yzckvree

yzckvree3#

来自组件的代码:

@Component({
  selector: 'app-customer-detail',
  ......
})

** @Component **:是一个装饰工
应用程序客户详细信息:是注解

装饰器提供了一种为类声明和成员添加annotations和元编程语法的方法。装饰器是JavaScript的第二阶段建议,可作为TypeScript的一个实验特性使用。
有不同类型的装饰器:

  • 类装饰器:@Component
  • 方法装饰器:@HostListener
  • 属性装饰器:@Input/@Output
  • 参数装饰器:@Inject

相关问题