IntelliJ 和 Angular 2 参数类型不可分配错误
IntelliJ and Angular 2 Argument Type Not Assignable Errors
IntelliJ 中的 Angular2(v15 的最新更新 - Ultimate)应该可以工作吗?所有文档似乎都说它是通过 AngularJS 插件实现的,但我遇到了非常奇怪的智能感知错误。例如;
bootstrap(App, [
ROUTER_PROVIDERS,
provide(LocationStrategy, {useClass: HashLocationStrategy})
]);
抛出 Argument type App is not assignable to parameter type Type
标准注释如;
@RouteConfig([
{path: '/...', component: RootView, as: 'RootView', useAsDefault: true}
])
扔Argument type {path: string, component: RootView, as: string, useAsDefault: boolean}[] is not assignable to parameter type RouteDefinition[]
有没有人运行以前接触过这个?任何人都知道如何让 intelliJ 玩得很好?
请求的应用程序来源;
import {Component, ViewEncapsulation} from 'angular2/core';
import {RootView} from './root-view';
import {
RouteConfig,
ROUTER_DIRECTIVES
} from 'angular2/router';
@Component({
selector: 'app',
templateUrl: './components/app/app.html',
encapsulation: ViewEncapsulation.None,
directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
{path: '/...', component: RootView, as: 'RootView', useAsDefault: true}
])
export class App {
}
事实证明,由于我无法解释的原因,需要一个构造函数,否则 IntelliJ 会变得非常混乱,并且这种混乱会一直沿着依赖链向下延伸。
在我的例子中,修复很简单,在 App:
中有一个默认的空构造函数
export class App {
constructor() {}
}
但是使用 IntelliJ 的 Angular2 中的一般经验法则似乎是 DI 链中所有内容的构造函数——至少目前是这样。我认为这是一个错误,将在 IntelliJ 的 angular 插件中修复——我刚刚提交给他们。
根据 JetBrains issue tracker,此问题已得到修复,并且在即将发布的 2016.2 版本中将不再是问题
同时您可以使用EAP版本。
IntelliJ 中的 Angular2(v15 的最新更新 - Ultimate)应该可以工作吗?所有文档似乎都说它是通过 AngularJS 插件实现的,但我遇到了非常奇怪的智能感知错误。例如;
bootstrap(App, [
ROUTER_PROVIDERS,
provide(LocationStrategy, {useClass: HashLocationStrategy})
]);
抛出 Argument type App is not assignable to parameter type Type
标准注释如;
@RouteConfig([
{path: '/...', component: RootView, as: 'RootView', useAsDefault: true}
])
扔Argument type {path: string, component: RootView, as: string, useAsDefault: boolean}[] is not assignable to parameter type RouteDefinition[]
有没有人运行以前接触过这个?任何人都知道如何让 intelliJ 玩得很好?
请求的应用程序来源;
import {Component, ViewEncapsulation} from 'angular2/core';
import {RootView} from './root-view';
import {
RouteConfig,
ROUTER_DIRECTIVES
} from 'angular2/router';
@Component({
selector: 'app',
templateUrl: './components/app/app.html',
encapsulation: ViewEncapsulation.None,
directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
{path: '/...', component: RootView, as: 'RootView', useAsDefault: true}
])
export class App {
}
事实证明,由于我无法解释的原因,需要一个构造函数,否则 IntelliJ 会变得非常混乱,并且这种混乱会一直沿着依赖链向下延伸。
在我的例子中,修复很简单,在 App:
中有一个默认的空构造函数export class App {
constructor() {}
}
但是使用 IntelliJ 的 Angular2 中的一般经验法则似乎是 DI 链中所有内容的构造函数——至少目前是这样。我认为这是一个错误,将在 IntelliJ 的 angular 插件中修复——我刚刚提交给他们。
根据 JetBrains issue tracker,此问题已得到修复,并且在即将发布的 2016.2 版本中将不再是问题
同时您可以使用EAP版本。