1
rxjs扩展方法:5.0.0-beta.2 打字稿:1.8 Angular2:β-9与通用obeservable的返回类型
我试图嘲弄一个HTTP服务类,但遇到问题时延长在角度2文档中描述的类。
似乎你不能重写一个方法,返回一个类型的observable?我错过了什么?
import {Observable} from "rxjs/Observable";
import {IQuery} from "../Query";
import {Http} from "angular2/http";
export interface IQuery<TResult> {
}
export class A {
public test = <T>(q: IQuery<T>): Observable<T> => {
var queryName = this.getName(query);
var url = `api/query/${queryName}`;
return this.httpPost<TResult>(url, query);
};
}
export class AMock extends A {
public test = <T>(q: IQuery<T>): Observable<T> => {
return mockObservable;
};
}
Severity Code Description Project File Line Suppression State
Error TS2415 Class 'AMock' incorrectly extends base class 'A'.
Types of property 'test' are incompatible.
Type '<T>(q: IQuery<T>) => Observable<T>' is not assignable to type '<T>(q: IQuery<T>) => Observable<T>'.
Type 'Observable<any>' is not assignable to type 'Observable<any>'.
Property 'source' is protected but type 'Observable<T>' is not a class derived from 'Observable<T>'. TypeScript Virtual Projects
如果返回类型是T但不是observable<T>
。
谢谢!
您能否生成一个定义'Iq'并具有Rx导入的文件示例?进口和/或类型可能是其中的一部分。 – Meligy
如果可能的话,您可能还想升级到beta6。 – Meligy
更新了更多的代码。我用新的角度2 rc-1测试了beta-6,但遇到了其他问题。错误/问题仍然存在,所以我不认为它是由rxjs beta-6解决的 – Darkness