【问题标题】:Angular2 with TypeScript: Declaration expected compiler error after @component带有TypeScript的Angular2:@component之后声明预期的编译器错误
【发布时间】:2016-04-21 20:39:23
【问题描述】:

尽管我从 angular2/core 导入了组件,但我遇到了这种错误,它的来源应该是文件没有通过 npm install 下载,或者我的节点需要升级

这是我的文件

import {bootstrap} from 'angular2/platform/browser';
import {Component, View} from 'angular2/core';

@Component({

})

【问题讨论】:

  • 装饰器和类在翻译成 JavaScript (ES5) 时只是函数。装饰器必须有参数 - 一个函数 - 才能装饰它。在 TypeScript 中,这意味着您必须在装饰器之后放置一些东西。您可以在this article中找到更多详细信息

标签: node.js typescript angular angular2-directives


【解决方案1】:

在组件之后定义一个类。

import {bootstrap} from 'angular2/platform/browser';
import {Component, View} from 'angular2/core';

@Component({

})
class MyClass {

}

@Component 只是一个包含类元数据的装饰器。换句话说,它只是以更优雅的方式为您的类定义内容。

@Component 函数获取配置对象并将其转换为附加到组件类定义的元数据。 Angular 在运行时发现这个元数据,因此知道如何做“正确的事情”。

Read more here

【讨论】:

  • 为什么要这样做
  • 我提供了一个更新,其中包含指向您需要的文档的链接。尝试从官方 angular 2 网站重新创建 quickstart 教程,以便您更清楚
  • 另外,如果我这样做,新错误出现在类名上,可能会更改对装饰器的实验性支持,请指定 --experimentalDecorator 以删除此警告,这不会警告类名下的整个红线跨度>
  • 那么您需要在 .tsconfig 文件中进行一些配置。您需要像这样"experimentalDecorators": true 启用experimentalDecorators。这也在快速入门中。
  • 如果我包括“experimentalDecorators”:真的我得到 99+ 错误说重复标识符主,缓存等,我还尝试了其他配置,如排除:在快速入门教程中指定的节点模块 tsconfig
猜你喜欢
  • 1970-01-01
  • 2017-09-22
  • 1970-01-01
  • 2021-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-11
相关资源
最近更新 更多