@Component 中 @ 的有什么作用?
@Component 中 @
是语法糖,用于表示装饰器。
import { Component } from '@angular/core';
@Component({
selector: 'exe-app',
template: `
<h1>Hello Angular</h1>
`,
})
export class AppComponent {
constructor() { }
}
编译后 ES 5 代码:
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {};
define(["require", "exports", "@angular/core"], function (require, exports, core_1) {
"use strict";
var AppComponent = (function () {
function AppComponent() {
}
return AppComponent;
}());
AppComponent = __decorate([
core_1.Component({
selector: 'exe-app',
template: "\n <h1>Hello Angular</h1>\n ",
})
], AppComponent);
exports.AppComponent = AppComponent;
});
@Component 中 @ 符号的作用是为了告诉 TypeScript 编译器,@ 后面的是装饰器函数或装饰器工厂,需要特殊处理。假设在 @Component({...}) 中去掉 @ 符号,那么变成了普通的函数调用,这样马上就会报错,因为我们并没有定义 Component 函数。
通过观察转换后的代码,我们发现 @Component({...}) 被转换成 core_1.Component ,它就是从 @angular/core
导入的装饰器函数。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论