2017-03-29 26 views
7

IveはAngular superheroチュートリアルで作業しました。それはすべて動作します。ts2304は名前「OnInit」を見つけることができません

私はNPM、再度開いてCMDウィンドウを実行しているのcmdウィンドウを閉じ、NPM STARTコマンドを再発行し、私は2つのエラー

src/app/DashBoard.component.ts(12,44) TS2304 : Cannot find name 'OnInit'. 
src/app/hero-list.component.ts(16, 434) TS2304 : Cannot find name 'OnInit'. 

を取得する場合、私は

Implements OnInit 

を削除することによってこの問題を解決することができますこれらのクラスの両方から、 NPMを起動 (単にCTL Zをエディタで使用) 変更を保存してください。 アプリが再コンパイルされ、私は離れて走っています。

私はこの機能を実装する4つのクラスを持っています。私は...それらを研究していると2が失敗するものを把握することはできません...

私はTS2304を参照記事を読みましたが、これは一般的な関数/変数/シンボルが見つからないメッセージであるように思わ

私は何を投稿するかわからない、私は幸せなコードを投稿する。
の中の様々なポイントで(このよう に失敗している一つのクラスは、これは主人公-list.component.tsファイル である。ここで、これは(hero.ts)に依存するモジュールの誤差によるこの

ありデモ/オンラインの例、これはまたHeroes.componentと呼ばれています..)

import { Component } from '@angular/core'; 
import { Router } from '@angular/router'; 

import { Hero } from './hero'; 
import { HeroService } from './hero.service'; 

@Component({ 
    selector: 'hero-list', 
    templateUrl: './hero-list.component.html' , 
    providers: [HeroService], 
    styleUrls: [ './hero-list.component.css'] 
}) 



export class HeroListComponent implements OnInit { 

    heroes : Hero[]; 
    selectedHero: Hero; 

    constructor(
     private router : Router , 
     private heroService: HeroService 
     ) { } 

    ngOnInit(): void { 
     this.getHeroes(); 
    } 

    onSelect(hero: Hero): void { 
     this.selectedHero = hero; 
    } 

    getHeroes(): void { 
     this.heroService.getHeroes().then(heroes => this.heroes = heroes); 
    } 

    gotoDetail() { 
     this.router.navigate(['/detail', this.selectedHero.id]); 
    } 

    add(name: string): void { 
     name = name.trim(); 
     if (!name) { return; } 
     this.heroService.create(name) 
      .then(hero => { 
       this.heroes.push(hero); 
       this.selectedHero = null; 
      }); 
    } 
    delete(hero: Hero): void { 
     this.heroService 
      .delete(hero.id) 
      .then(() => { 
       this.heroes = this.heroes.filter(h => h !== hero); 
       if (this.selectedHero === hero) { this.selectedHero = null; } 
      }); 
    } 
} 
+1

あなたはスペルミス場合は、同じエラーを取得します「のOnInit」。私の場合、私は 'onInit'を使いました。誰かを助けることを願っています。 –

答えて

16

あなたはOnInitをインポートする必要があります。

import { Component, OnInit } from '@angular/core'; 
+1

うわー。それは複雑だった。 Eduardoに感謝します。 :-) – greg

2

tutorialあなたは活字体ファイルへapp.component.tsOnInitのインポートを追加する必要が言及して失敗します。

import { Component, OnInit } from '@angular/core'; 
関連する問題