5

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 {
}
4

2 回答 2

2

事实证明,由于我无法解释的原因,构造函数是必需的,否则 IntelliJ 会变得非常混乱,并且这种混乱会一直沿着依赖链向下传播。

在我的实例中,修复很简单,App 中的默认空构造函数:

export class App {
    constructor() {}
}

但是 Angular2 和 IntelliJ 的一般经验法则似乎是 DI 链中所有事物的构造函数——至少目前如此。我认为这是一个错误,将在 IntelliJ 的角度插件中修复——我刚刚提交给他们。

于 2016-01-08T14:09:44.373 回答
1

根据JetBrains 问题跟踪器,此问题已得到修复,并且在即将发布的 2016.2 版本中不会再出现问题

同时您可以使用 EAP 版本。

于 2016-06-22T16:40:31.903 回答