我正在使用typescript进行angular 2应用程序开发。
但当我们为组件或路由配置或其他地方编写代码时,我们使用"@“符号。
我的问题是这个符号是什么意思,为什么需要它?
发布于 2016-07-03 23:02:48
您引用的@
符号称为decorator
。
装饰器提供了一种为类声明和成员添加注释和元编程语法的方法。
基本上,当你在做@component
的时候,你是在告诉编译器这个类是一个带有作为参数传递的元数据的angular2组件。
例如。
@Component({
moduleId: module.id,
selector: 'heroes-app',
templateUrl: 'heroes.component.html',
styleUrls: ['heroes.component.css'],
})
class HeroesComponent{}
这段代码将告诉编译器,类HeroesComponent应该是一个带有作为参数传递的元数据的angular2组件,它将创建一个组件类。
装饰器不是魔法。这只是函数调用。
例如。
@Component({
selector: 'static-component',
template: `<p>Static Component</p>`
})
class StaticComponent {}
等同于:
class DynamicComponent {
}
const dynamicComponent = Component({
selector: 'dynamic-component',
template: `<p>Dynamic Component</p>`
})(DynamicComponent);
希望这能有所帮助。
发布于 2016-07-03 20:41:56
这意味着你正在应用一个装饰器。
随着TypeScript和ES6中类的引入,现在存在某些场景,需要额外的功能来支持注释或修改类和类成员。装饰器提供了一种为类声明和成员添加注释和元编程语法的方法。装饰器是JavaScript的第1阶段提案,并作为TypeScript的实验特性提供。
https://stackoverflow.com/questions/38170004
复制相似问题