我很困惑什么时候使用术语注解,什么时候使用装饰器?
@Component({ selector: 'tabs', template: ` ` }) export class Tabs { }
uhry853o1#
装饰器对应于在类上调用的函数,而注解是使用反射元数据库在类上设置的“唯一”元数据。对于TypeScript和ES7,@Something是一个装饰器。在Angular2的上下文中,像@Component、@Injectable ...这样的装饰器使用Reflect.defineMetadata方法为装饰的元素定义元数据。这个问题可能会让你有兴趣了解什么是装饰师:
@Something
@Component
@Injectable
Reflect.defineMetadata
mrfwxfqh2#
Traceur给出了annotations,TypeScript给出了decorators,但Angular 2同时支持这两种情况。注解创建一个“annotations”数组。而装饰器是接收装饰对象的函数,可以对其进行任何更改。因为angular使用TypeScript而不是atScript,所以它使用了装饰器。
annotations
decorators
有关详细信息,请参阅
yzckvree3#
来自组件的代码:
@Component({ selector: 'app-customer-detail', ...... })
** @Component **:是一个装饰工应用程序客户详细信息:是注解
装饰器提供了一种为类声明和成员添加annotations和元编程语法的方法。装饰器是JavaScript的第二阶段建议,可作为TypeScript的一个实验特性使用。有不同类型的装饰器:
@HostListener
@Input/@Output
@Inject
3条答案
按热度按时间uhry853o1#
装饰器对应于在类上调用的函数,而注解是使用反射元数据库在类上设置的“唯一”元数据。
对于TypeScript和ES7,
@Something
是一个装饰器。在Angular2的上下文中,像@Component
、@Injectable
...这样的装饰器使用Reflect.defineMetadata
方法为装饰的元素定义元数据。这个问题可能会让你有兴趣了解什么是装饰师:
mrfwxfqh2#
Traceur给出了
annotations
,TypeScript给出了decorators
,但Angular 2同时支持这两种情况。注解创建一个“annotations”数组。而装饰器是接收装饰对象的函数,可以对其进行任何更改。
因为angular使用TypeScript而不是atScript,所以它使用了装饰器。
有关详细信息,请参阅
yzckvree3#
来自组件的代码:
** @Component **:是一个装饰工
应用程序客户详细信息:是注解
装饰器提供了一种为类声明和成员添加annotations和元编程语法的方法。装饰器是JavaScript的第二阶段建议,可作为TypeScript的一个实验特性使用。
有不同类型的装饰器:
@Component
@HostListener
@Input/@Output
@Inject