Открытое свойство X экспортируемого класса имеет или использует имя «Observable» из внешнего модуля «/ rxjs / internal / Observable», но не может быть названо - PullRequest
0 голосов
/ 11 января 2019

Я реализовал сервис для обмена данными между компостами:

import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class DataService {
  private dataSource = new BehaviorSubject(Object);
  public currentData = this.dataSource.asObservable();

  constructor() {}

  changeData(data) {
    this.dataSource.next(data);
  }
}

Все работало нормально, пока я не попытался построить проект. Тогда у меня есть эта ошибка:

ошибка TS4029: Открытое свойство 'currentData' экспортируемого класса имеет или является используя имя Observable из внешнего модуля "/ Rxjs / внутренний / Наблюдаемые" но не может быть назван.

1 Ответ

0 голосов
/ 11 января 2019

После некоторого исследования я понял, что я использую свойство, которое относится к Observable , но не может быть найдено. Чтобы это исправить, мне нужно просто добавить отсутствующий Observable импорт и ввести в переменную currentData:

import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class DataService {
  private dataSource = new BehaviorSubject(Object);
  public currentData: Observable<Object> = this.dataSource.asObservable();

  constructor() {}

  changeData(data) {
    this.dataSource.next(data);
  }
}

Однако ошибка появилась только тогда, когда я преобразовал проект в lib.

...