javascript - Angular 2 bootstrap-funktion ger felmeddelandet "Argument typ AppComponent kan inte tilldelas till parametertyp Type"


Här är min första enkla Hello World Angular 2-app från Angular 2:s snabbstartsguide.

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);

Applikationen fungerar bra när jag kör med npm start, men min IntelliJ IDE visar fel på raden med bootstrap(AppComponent)

Argumenttypen AppComponent kan inte tilldelas parametertypen Type

När man tittar på bootstrap-funktionsdeklarationen, behöver AppComponent utöka Type.

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

Min fråga är:

Förväntas det att Angular-komponenter ska utöka Type?

Svar #1

Jag snubblade över detta i IntelliJ 2016.1.2, med Angular-quickstartdemot. Att ställa in följande alternativ i IDE hjälpte:

Svar #2

att lägga till kommentar/anteckning som visas nedan löser problemet

//noinspection TypeScriptValidateTypes
bootstrap(AppComponent);

Svar #3

Ovanstående svar fungerade inte för mig. Jag kunde åtgärda det genom att göra det som rekommenderades i kommentarerna ovan.

bootstrap(<any>AppComponent);

Jag använder Intellij 14.1.5

Svar #4

Faktiskt förväntas AppComponent ärvda Type. Så använd följande:

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

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

Detta kommer också att följa den förväntade konventionen av ng2 för AppComponent (att startas).

Jag är inte säker på varför de inte tog upp det i ng2-tutorials, troligtvis försöker de förenkla den initiala inlärningen, eftersom det fungerar även utan extends-delen.

Detta fungerar helt fint i WebStorm/IntelliJ.

Redigera: Ett alternativt lösning är att uppdatera till Webstorm v2016.2 (som är stabil vid tidpunkten för denna kommentar).

Relaterade artiklar