以下是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 不能分配给参数类型类型
查看bootstrap
函数声明,AppComponent
需要扩展Type
。
export declare function bootstrap(appComponentType: Type, customProviders?: Array<any>): Promise<ComponentRef>;
我的问题是:
Angular组件是否应该扩展Type
?
答案 0 :(得分:52)
答案 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;单击“确定”按钮,即可完成。
答案 6 :(得分:0)
对于我必须做的新的angular2路由器..
self.coef_
注意任何用于APP_ROUTER_PROVIDERS而不是AppComponent。
答案 7 :(得分:-2)
//noinspection TypeScriptValidateTypes
在WebStorm为我工作。
此外,我已经在IntelIJ中打开了我的项目,并且没有错误。