Angular 2 bootstrap函数给出错误"参数类型AppComponent不能分配给参数类型Type"

时间:2015-12-19 02:59:53

标签: javascript angular typescript intellij-idea

以下是Angular 2 quick start guide中我的第一个简单的Hello World角度2应用。

import {Component} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';
@Component({
    selector: 'ng2-app',
    template: '<h1>My first Angular 2 App</h1>'
})
export class AppComponent { }


bootstrap(AppComponent);

当我使用npm start运行时,应用程序运行正常但我的IntelliJ IDE在bootstrap(AppComponent)

行中显示错误
  

参数类型 AppComponent 不能分配给参数类型类型

Angular 2 typescript warning

查看bootstrap函数声明,AppComponent需要扩展Type

export declare function bootstrap(appComponentType: Type, customProviders?: Array<any>): Promise<ComponentRef>;

我的问题是:

Angular组件是否应该扩展Type

8 个答案:

答案 0 :(得分:52)

我在Intellij 2016.1.2中偶然发现了Angular快速入门演示。在IDE中设置以下选项有帮助:

enter image description here

答案 1 :(得分:11)

上述答案对我不起作用。我能够通过做上面评论中推荐的内容来修复它。

bootstrap(<any>AppComponent);

我正在使用Intellij 14.1.5

答案 2 :(得分:10)

实际上, AppComponent应该扩展Type 。请使用以下内容:

// app.component.ts
import { Component, Type } from '@angular2/core';

@Component({
...
...
})
export class AppComponent extends Type {}

这也将遵循针对AppComponent的ng2的预期约定(将被引导)。

我不确定为什么他们没有在ng2教程中介绍它,可能他们的目标是简化初始学习,因为即使没有扩展部分它也会运行。

这在WebStorm / IntelliJ中完全正常。

编辑:备用解决方案是更新到Webstorm v2016.2(在此评论发布时保持稳定)。

答案 3 :(得分:1)

IMO改变代码只是为了让WebStorm / IntelliJ不会抱怨不是一个可行的解决方案。 由于我有一个单独的捆绑/编译过程,所以我禁用了IntelliJ&gt;对打字稿的操作: 设置 - &gt;语言 - &gt;打字稿 - 取消选中那里的选项。 如果您已经是这种情况,那么您可以尝试检查选项,然后再应用然后取消选中。

你可以看到这仍然有点儿麻烦。例如,在我使用IDE(SHIFT + F6)完成一些类重命名后,返回了错误。重复上述操作再次删除它们。

使用IntelliJ 15.0.2

答案 4 :(得分:1)

Webstorm 2016.1.3上面的解决方案适合我

设置 - &gt;语言与框架 - &gt;打字稿: 启用TypeScript, 使用tsconfig.json

PS:这与之前的Webstorm版本(2016.1.3)

所述的解决方案相同

答案 5 :(得分:1)

IDE中未启用由于TypeScript编译器引起的此错误。您需要启用TypeScript编译器。

在Webstorm中启用Typescript编译器:

转到Webstorm菜单(左上方菜单)=&gt;首选项菜单=&gt;语言与框架=&gt;点击TypeScript =&gt; 启用Typescript编译器(启用复选框)=&gt; enable使用tsconfig.json option =&gt;单击“确定”按钮,即可完成。

enter image description here

答案 6 :(得分:0)

对于我必须做的新的angular2路由器..

self.coef_

注意任何用于APP_ROUTER_PROVIDERS而不是AppComponent。

答案 7 :(得分:-2)

//noinspection TypeScriptValidateTypes 在WebStorm为我工作。

此外,我已经在IntelIJ中打开了我的项目,并且没有错误。