コンポーネント間でデータを共有するためのサービスを実装しました。
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'は、外部モジュール "/ rxjs / internal / Observable"からの名前 'Observable'を持っているか、使用していますが、名前を付けることができません。
調査の結果、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に変換したときにのみ表示されました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加