私はAngularスーパーヒーローチュートリアルに取り組んできました。すべて動作します。
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 startを実行し、それらを再度追加します(エディターのCTL Zのみ)いくつかの変更を行い、保存します。アプリが再コンパイルされ、オフになり実行されます。
この機能を実装する4つのクラスがあります。私はそれらを研究しましたが、2が失敗する原因を理解することはできません...
TS2304を参照する投稿を読みましたが、これは汎用の関数/変数/シンボルが見つかりませんというメッセージのようです...
何を投稿したらいいかわかりません。コードを投稿できてうれしいです。
これは、これが依存するモジュール(hero.ts)のエラーが原因ですか?
この方法で失敗しているクラスが1つあります。これはhero-list.component.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; }
});
}
}
OnInitをインポートする必要があります。
import { Component, OnInit } from '@angular/core';
OnInitをインポートするだけ
import { Component, OnInit } from '@angular/core';