我正在使用TypeScript进行Angular 2应用程序开发。
但是,当我们为组件、路由配置或其他地方编写代码时,我们会使用"@"符号。
我的问题是这个符号代表什么,为什么需要使用它?
但是,当我们为组件、路由配置或其他地方编写代码时,我们会使用"@"符号。
我的问题是这个符号代表什么,为什么需要使用它?
你所提到的@
符号被称为装饰器
。
装饰器为类声明和成员提供了添加注解和元编程语法的方法。
基本上,当你使用@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);
希望这能有所帮助。
这意味着您正在应用装饰器。
随着TypeScript和ES6引入了类,现在存在某些场景需要额外的功能来支持注释或修改类和类成员。 装饰器为类声明和成员提供了一种添加注释和元编程语法的方式。 装饰器是JavaScript的第一阶段提案,并作为TypeScript的实验性功能提供。