Подтвердить что ты не робот

Ts2304 не может найти имя 'OnInit'

Я работал над учебным курсом по угловым супергероям. Все работает

Если я закрою окно cmd, в котором запущен NPM, то заново открою окно CMD и снова введите команду NPM START. Я получаю две ошибки

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, но это, кажется, общее сообщение Функция/Переменная/Символ не найден...

Я не знаю, что писать. Я рад опубликовать любой код.
Это вызвано ошибками в модулях, от которых зависит (hero.ts)?

Вот один класс, который терпит неудачу таким образом. Это файл 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; }
            });
    }
}
4b9b3361

Ответ 1

Вам нужно импортировать OnInit.

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

Ответ 2

В руководстве не упоминается, что вам нужно добавить импорт OnInit в файл TypeScript app.component.ts:

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

Ответ 3

Просто импортируйте OnInit

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