Angular2与TypeScript:@component后出现声明期望的编译器错误

6

虽然我从angular2/core导入了Component,但我仍然遇到了这种错误。如果文件没有通过npm下载或者我的node需要升级,它的来源应该是什么?

以下是我的文件:

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

@Component({

})

装饰器和类在转换为JavaScript(ES5)时只是函数。装饰器必须有一个参数 - 一个函数 - 才能够进行装饰。在TypeScript中,这意味着您必须在装饰器后面放置一些内容。您可以在此文章中找到更多详细信息。 - Sasxa
1个回答

7
在组件之后定义一个类。
import {bootstrap} from 'angular2/platform/browser';
import {Component, View} from 'angular2/core';

@Component({

})
class MyClass {

}

@Component 是一个装饰器,用于为类添加元数据。换句话说,它只是以更加优雅的方式为您的类定义一些东西。

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

在这里了解更多信息


为什么需要这样做? - blackHawk
如果我这样做,类名下方会出现一整条红线,并且提示“实验性装饰器支持”,这可能会改变,请指定--experimentalDecorator以移除此警告。 - blackHawk
你需要在你的 .tsconfig 文件中进行一些配置。你需要像这样启用 experimentalDecorators"experimentalDecorators": true。这也在快速入门中提到了。 - Hristo Enev
如果我包含 "experimentalDecorators": true,我会得到99+个错误,说重复的标识符main、cache等等,我还尝试了其他配置,比如在快速入门教程中指定的排除:node模块在tsconfig中指定。 - blackHawk
有两个文件夹node_modules和typings,一个主文件app.ts和angularcomponent.ts和一个.js文件,结构很简单,是的我使用npm安装了typescript。 - blackHawk
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接