Angular - "нет экспортируемого члена" Наблюдаемый ""

code

error info

Машинописный код:

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { of } from 'rxjs/observable/of';
import { Hero } from './hero';
import { HEROES } from './mock-heroes';

@Injectable({
  providedIn: 'root'
})
export class HeroService {

  constructor() { }

  getHeroes(): Observable<Hero[]> {
    return of(HEROES);
  }

}

информация об ошибке:

ошибка TS2307: не удается найти модуль 'rxjs-compat/Observable'. node_modules/rxjs/observable/of.d.ts(1,15): ошибка TS2307: не удается найти модуль 'rxjs-compat/observable/of'. src/app/hero.service.ts(2,10): ошибка TS2305: Модуль '"F: /angular-tour-of-heroes/node_modules/rxjs/Observable" "не имеет экспортированного члена Observable. src/app/hero.service.ts(15,12): ошибка TS2304: не удается найти имя "of".

файл package.json с угловой версией:

version

Ответ 1

Я заменил исходный код на import { Observable, of } from 'rxjs', и проблема решена.

enter image description here

enter image description here

Ответ 2

Это может быть полезно в угловых 6 для получения дополнительной информации см этого документа

  1. rxjs: методы, типы, планировщики и утилиты создания
import { Observable, Subject, asapScheduler, pipe, of, from, interval, merge, fromEvent } from 'rxjs';
  1. rxjs/operator: Все пригодные для работы операторы:
import { map, filter, scan } from 'rxjs/operators';
  1. rxjs/webSocket: реализация темы веб-сокета
import { webSocket } from 'rxjs/webSocket';
  1. rxjs/ajax: реализация Rx ajax
import { ajax } from 'rxjs/ajax';
  1. rxjs/testing: Утилиты тестирования
import { TestScheduler } from 'rxjs/testing';

Ответ 3

По-видимому (как вы указываете в журнале ошибок), после обновления до Angular 6.0.0 отсутствует rxjs-compat.

Запустите npm install rxjs-compat --save для установки. Должен это исправить.

Ответ 4

Просто поставьте:

import { Observable} from 'rxjs';

Просто так. Ничего больше или меньше.

Ответ 5

Вы используете RxJS 6. Просто замените

import { Observable } from 'rxjs/Observable';
import { of } from 'rxjs/observable/of';

от

import { Observable, of } from 'rxjs';

Ответ 6

Что помогло мне это:

  1. Избавьтесь от всех старых путей импорта и замените их новыми:

    import { Observable, BehaviorSubject } from 'rxjs';)

  2. Удалить папку node_modules

  3. npm cache verify
  4. npm install

Ответ 7

У меня была аналогичная проблема. Back-revving RXJS от 6.x до последней версии 5.x зафиксировал его для Angular 5.2.x.

Откройте пакет package.json.

Измените "rxjs": "^6.0.0", на "rxjs": "^5.5.10",

запустить npm update

Ответ 8

Мое разрешение добавляло следующий импорт: import { of } from 'rxjs/observable/of';

Таким образом, общий код hero.service.ts после изменения:

import { Injectable } from '@angular/core';
import { Hero } from './hero';
import { HEROES } from './mock-heroes';
import { of } from 'rxjs/observable/of';
import {Observable} from 'rxjs/Observable';

@Injectable()
export class HeroService {

  constructor() { }

  getHeroes(): Observable<Hero[]> {
    return of(HEROES);
  }
}

Ответ 9

Компонент с angular-split не поддерживается в Угловом 6, поэтому для его совместимости с Угловым 6 установите следующую зависимость в вашем приложении

Чтобы получить эту работу до ее обновления, используйте:

"dependencies": {
"angular-split": "1.0.0-rc.3",
"rxjs": "^6.2.2",
    "rxjs-compat": "^6.2.2",
}

Ответ 10

Просто удалите /Observable 'rxjs/Observable'; с 'rxjs/Observable';

Если вы затем получаете Cannot find module 'rxjs-compat/Observable' просто поместите ниже строки в терминал терминала и нажмите Cannot find module 'rxjs-compat/Observable'.

npm install --save rxjs-compat

Ответ 11

В моем случае эта ошибка происходила из-за того, что у меня была старая версия ng cli на моем компьютере.

Проблема была решена после запуска:

ng update

ng update @angular/cli

Ответ 12

Обновите версию angular-in-memory-web-api. Версия angular-in-memory-web-api по умолчанию, установленная во время урока angular-tour-of-heroes, была 0,4. Это работает как шарм в моем случае. (Использование Angular 7 с RxJS 6)

npm i [email protected]

Ответ 13

Попробуй это:

npm install rxjs-compat --save

Ответ 14

использовать return Observable.of(HEROES);