Javascript RXJS Observable枚举类型,类型“Observable”不可分配给类型“type”
我正试图观察溪流中发生的最新事件。每个事件可以是两种类型中的一种,由枚举表示。但是,我在以下示例中遇到编译错误:Javascript RXJS Observable枚举类型,类型“Observable”不可分配给类型“type”,javascript,typescript,rxjs,observable,Javascript,Typescript,Rxjs,Observable,我正试图观察溪流中发生的最新事件。每个事件可以是两种类型中的一种,由枚举表示。但是,我在以下示例中遇到编译错误: import { BehaviorSubject } from 'rxjs/Rx'; export enum FilterAction { RESET, UPDATE } export class FilterSomething { private _filterEvent: BehaviorSubject<FilterAction> = new Beha
import { BehaviorSubject } from 'rxjs/Rx';
export enum FilterAction {
RESET, UPDATE
}
export class FilterSomething {
private _filterEvent: BehaviorSubject<FilterAction> = new BehaviorSubject(FilterAction.RESET);
get filterEvent() {
return this._filterEvent.asObservable(); // <-- behave.ts(14,12): error TS2322: Type 'Observable<FilterAction>' is not assignable to type 'FilterAction'
}
set filterEvent(action: FilterAction){
this._filterEvent.next(action);
}
}
我怀疑这与枚举值有关,与FilterAction的实例相反。问题在于getter的返回类型。getter和setter应该获取并返回相同类型的参数,在您的示例中,这是FilterAction。但是你的getter返回可见。只是不要使用getter,而是更改函数的名称。然后语言服务停止显示错误。在语言规范中: 如果两个访问器都包含类型批注,则指定的类型必须相同
您可以签出。问题在于getter的返回类型。getter和setter应该获取并返回相同类型的参数,在您的示例中,这是FilterAction。但是你的getter返回可见。只是不要使用getter,而是更改函数的名称。然后语言服务停止显示错误。在语言规范中: 如果两个访问器都包含类型批注,则指定的类型必须相同
您可以检查。哪一行是第14行?返回此。\u filterEvent.a可观察;哪一行是第14行?返回此。\u filterEvent.a可观察;
set filterEvent(filterAction: any) {
this._filterEvent.next(filterAction);
}