7

谁能告诉我。'@'导入的 Component 函数前面的符号。那是 ES6 语法吗?我还没有看到它在我看过的任何其他非 Angular ES6 项目中使用过。

import {Component} from ...
@Component({})

这是一个例子

4

3 回答 3

18

@语法是 es7 新草案的一部分,目前处于第 1 阶段(提案阶段)。它们被称为装饰器。

装饰器可以在设计时注释和修改类和属性。

有关更多信息,请参阅:https ://github.com/wycats/javascript-decorators


注意:您可以使用装饰器,通过启用(在 webpack 中)或通过将配置设置为来使用Babeloptional[]=es7.decoratorsstage:1

于 2015-05-13T15:08:50.213 回答
5

简短的回答:没有。

@语法定义了一个注解——这是由 Angular 的AtScript引入的,后来合并到TypeScript中。据我所知,它们类似于 .NET 语言中的注释。

注解不是标准 ES6 的一部分;它们只是 TypeScript 提供的装饰。值得注意的是,Angular 2 支持使用 TypeScript 注释,Aurelia 也是如此。

我目前无法提供链接,但有资源非常详细地描述了 ES6 的特性和语言组件。

于 2015-05-13T14:20:32.393 回答
5

只是为了记录,您可以在 ES6 中实现相同的行为,只需将 TypeScript 注释转换为以下内容:

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>`
            })
        ];
    }
}
于 2016-01-12T11:29:00.160 回答