Voici mon premier simple Hello World
angular 2 de Guide de démarrage rapide Angular 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);
L'application fonctionne correctement lorsque j'exécute avec npm start
Mais mon IntelliJ IDE affiche une erreur dans la ligne avec bootstrap(AppComponent)
Le type d'argument AppComponent n'est pas attribuable au type de paramètre Type
En regardant la déclaration de fonction bootstrap
, AppComponent
doit étendre Type
.
export declare function bootstrap(appComponentType: Type, customProviders?: Array<any>): Promise<ComponentRef>;
Ma question est:
Est-il prévu que Angular étendent Type
?
En fait, AppComponent devrait étendre Type . Utilisez donc ce qui suit:
// app.component.ts
import { Component, Type } from '@angular2/core';
@Component({
...
...
})
export class AppComponent extends Type {}
Cela suivra également la convention attendue par ng2 pour AppComponent (à amorcer).
Je ne sais pas pourquoi ils ne l'ont pas couvert dans les tutoriels ng2, ils pourraient probablement viser à simplifier l'apprentissage initial, car il fonctionne même sans la partie étend.
Cela fonctionne parfaitement dans WebStorm/IntelliJ.
Edit: Une autre solution consiste à mettre à jour vers Webstorm v2016.2 (qui est stable au moment de ce commentaire).
l'ajout de commentaires/annotations comme indiqué ci-dessous résout le problème
//noinspection TypeScriptValidateTypes
bootstrap(AppComponent);
La réponse ci-dessus n'a pas fonctionné pour moi. J'ai pu le réparer en faisant ce qui était recommandé dans les commentaires ci-dessus.
bootstrap(<any>AppComponent);
J'utilise Intellij 14.1.5
Cette erreur d'introduction due au compilateur TypeScript n'est pas activée dans votre IDE. vous devez activer le compilateur TypeScript.
Activez le compilateur TypeScript dans Webstorm:
allez dans le menu Webstorm (menu en haut à gauche) => menu Préférences => Langues & Frameworks => cliquez sur TypeScript => Activer le compilateur TypeScript (cochez la case) => activez l'option Use tsconfig.json => cliquez sur Ok bouton et vous avez terminé.
Webstorm 2016.1.3 la solution ci-dessus fonctionne pour moi
Paramètres -> Langage et cadres -> TypeScript: activez TypeScript, utilisez tsconfig.json
PS: il s'agit de la même solution que celle décrite précédemment pour la version Webstorm précédente (2016.1.3)
IMO changer le code partout juste pour que WebStorm/IntelliJ ne se plaint pas n'est pas une solution viable. Comme j'ai un processus de regroupement/compilation séparé, j'ai plutôt désactivé les opérations d'IntelliJ sur TypeScript: Paramètres-> Langues-> TypeScript - décochez les options là-bas. Si c'est déjà le cas pour vous, vous pouvez essayer de vérifier les options, d'appliquer et de décocher à nouveau.
Vous pouvez voir que c'est encore un peu bogué. Par exemple, après avoir fait un changement de nom de classe en utilisant IDE (SHIFT + F6), les erreurs sont retournées. La répétition de ce qui précède les a à nouveau supprimées.
Utilisation d'IntelliJ 15.0.2
Pour le nouveau routeur angular2 je devais faire ..
bootstrap(AppComponent [
<any>APP_ROUTER_PROVIDERS
]).catch((err:any) => console.error(err));
REMARQUE any est utilisé sur APP_ROUTER_PROVIDERS et non AppComponent.