Angular: 错误 TS2322: 类型 'Observable<{}>' 不可分配 ... 使用 share() 运算符
Angular: error TS2322: Type 'Observable<{}>' is not assignable ... with share() operator
我是 Angular 5 的新手,我正在实施 Observable/Observer 模式以便与订阅者共享一些事件和一些数据更改。
这里是代码片段:
...
@Injectable()
export class NidoService {
...
event$: Observable<StrutturaDto[]>;
private _observer: Observer<any>;
event_dettaglio$: Observable<Struttura>;
private _observer_dettaglio: Observer<any>;
constructor() {
this.event$ = new Observable(observer => this._observer = observer).share();
this.event_dettaglio$ = new Observable(observer => this._observer_dettaglio = observer).share();
}
...
}
当我尝试使用 ng build 构建应用程序时,我在 constructor 中的两行代码中遇到了这些错误:
ERROR in src/app/services/nido.service.ts(28,7): error TS2322: Type 'Observable<{}>' is not assignable to type 'Observable<StrutturaDto[]>'.
Type '{}' is not assignable to type 'StrutturaDto[]'.
Property 'includes' is missing in type '{}'.
src/app/services/nido.service.ts(29,7): error TS2322: Type 'Observable<{}>' is not assignable to type 'Observable<Struttura>'.
Type '{}' is not assignable to type 'Struttura'.
Property 'idStruttura' is missing in type '{}'.
当我在开发模式下使用它时没有问题,但如果不修复它们我就无法构建。如何更改这两行代码?
您需要指定可观察对象的类型:
this.event$ = new Observable<StrutturaDto[]>(observer => this._observer = observer).share();
和
this.event_dettaglio$ = new Observable<Struttura>(observer => this._observer_dettaglio = observer).share();
我是 Angular 5 的新手,我正在实施 Observable/Observer 模式以便与订阅者共享一些事件和一些数据更改。
这里是代码片段:
...
@Injectable()
export class NidoService {
...
event$: Observable<StrutturaDto[]>;
private _observer: Observer<any>;
event_dettaglio$: Observable<Struttura>;
private _observer_dettaglio: Observer<any>;
constructor() {
this.event$ = new Observable(observer => this._observer = observer).share();
this.event_dettaglio$ = new Observable(observer => this._observer_dettaglio = observer).share();
}
...
}
当我尝试使用 ng build 构建应用程序时,我在 constructor 中的两行代码中遇到了这些错误:
ERROR in src/app/services/nido.service.ts(28,7): error TS2322: Type 'Observable<{}>' is not assignable to type 'Observable<StrutturaDto[]>'.
Type '{}' is not assignable to type 'StrutturaDto[]'.
Property 'includes' is missing in type '{}'.
src/app/services/nido.service.ts(29,7): error TS2322: Type 'Observable<{}>' is not assignable to type 'Observable<Struttura>'.
Type '{}' is not assignable to type 'Struttura'.
Property 'idStruttura' is missing in type '{}'.
当我在开发模式下使用它时没有问题,但如果不修复它们我就无法构建。如何更改这两行代码?
您需要指定可观察对象的类型:
this.event$ = new Observable<StrutturaDto[]>(observer => this._observer = observer).share();
和
this.event_dettaglio$ = new Observable<Struttura>(observer => this._observer_dettaglio = observer).share();