任何人都可以告诉我。导入的Component函数前面的'@'
符号。这是ES6语法吗?我还没有看到它用于我曾经看过的任何其他无角度ES6项目。
import {Component} from ...
@Component({})
答案 0 :(得分:18)
@
语法是es7新草案的一部分,目前正处于第1阶段(提案阶段)。他们被称为装饰者。
装饰器可以在设计时注释和修改类和属性。
有关详细信息,请参阅:https://github.com/wycats/javascript-decorators
注意:通过启用optional[]=es7.decorators
(在webpack中)或将配置设置为stage:1
答案 1 :(得分:5)
简短回答:不。
@
语法定义了一个注释 - 这是由Angular的AtScript引入的,后来合并到TypeScript。从我所看到的,它们类似于.NET语言中的注释。
注释不是标准ES6的一部分;它们只是TypeScript提供的装饰。值得注意的是,Angular 2支持使用TypeScript注释,Aurelia也是如此。
我目前无法提供链接,但有一些资源可以非常详细地描述ES6的功能和语言组件。
答案 2 :(得分:5)
仅针对记录,只需将TypeScript注释转换为以下内容,即可在ES6中实现相同的行为:
import {Component, ...} from 'angular2/core';
export class myAppOrDirective {
static get annotations() {
return [
new Component({
selector: 'my-app-or-directive'
}),
new View({
template: `<div>Hello!</div>`
})
];
}
}