Сообщение «Ошибка»: «Свойство» из «не существует для типа typeof Observable»

Я пытаюсь изучить реактивное программирование с помощью RxJS. Я пытался создать наблюдаемое из массива с помощью метода Observable.from (), но получаю сообщение об ошибке:

Свойство from не существует для типа typeof Observable

Я создал приложение Angular с помощью Angular CLI, поэтому все зависимости, включая пакет RxJS, были импортированы правильно.

В app.component.ts я добавил ниже операторы импорта:

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

А мой класс AppComponent выглядит так:

export class AppComponent {

  numbers: number[] = [1, 2, 3, 4, 5];

  callMyObservable() : void {  
    Observable.from(this.numbers);
  }
}  

Но я получаю вышеупомянутую ошибку времени компиляции.

Я не знаю, как заставить его работать.


person Deepak Pathak    schedule 29.10.2017    source источник


Ответы (2)


Изменять

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

To

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/from';
person Sajeetharan    schedule 29.10.2017
comment
Бинго !!! Большое спасибо @Sajeetharan. Есть ли какая-либо официальная документация, в которой указано точное дерево, чтобы найти правильный импорт для операторов и наблюдаемых функций? - person Deepak Pathak; 30.10.2017
comment
Я понял это. Простое нажатие F12 на rxjs может показать соответствующие пути импорта. - person Deepak Pathak; 30.10.2017
comment
извините, я не заметил вашего комментария, если вы используете vscode, он тоже отображается - person Sajeetharan; 30.10.2017
comment
теперь он говорит: Module '"G:/learning-rxjs/node_modules/rxjs/Observable"' has no exported member 'Observable'. - person Mihai Farcas; 01.05.2018
comment
Затем появляется ошибка TS2307: не удается найти модуль rxjs. - person Veronica; 15.12.2019
comment
ОШИБКА в ./src/app/services/auth-guard.service.ts Модуль не найден: Ошибка: рекурсия при разрешении - person Veronica; 16.12.2019

Если вы используете rxjs> = 6.0.0, вы больше не используете Observable.from. Вместо этого from - это отдельная функция.

import { Observable, from} from 'rxjs';

//old way
var o = Observable.from([1, 2, 3, 4]);

//new way
var o = from([1, 2, 3, 4]);

Я надеюсь, что это будет полезно, поскольку мне потребовалось время, чтобы понять это.

person abaga129    schedule 10.07.2018
comment
Принятые ответы не выдерживают испытания временем, как раньше! Хороший - person Beanwah; 17.07.2018
comment
@Beanwah geesh ... жаль, что Rxjs не изменился, как ветер, хотя, от обещания, от, Observable.from, просто от самого себя ... решите ›.‹ - person Grant; 19.01.2021