我有一个执行帖子的api函数并返回ModelAResponse的Observable(我有的接口)
我想根据返回的状态返回一个ModelAResponse或B的Observable。
这是我的两个响应模型:
export interface ModelAResponse {
res: ModelA;
}
export interface ModelBResponse {
res: ModelB
}
(ModelA,ModelB是放在另一个类中的接口)
所以目前我只支持一次模特回归:
public myApiFunc(req: MyRequestModel): Observable<ModelAResponse> {
...
this.http.post("my/api/path", req, {headers: myHeaders}),
(jsonReturned) => status === 200 ? {res: jsonReturned} : undefined);
...
}
如何根据打字稿最佳实践方式中的状态更改此func以返回ModelAResponse或ModelBResponse?
答案 0 :(得分:2)
你不能这样做。 Typescript只能在构建时基于静态分析来键入内容,你的描述需要Typescript在构建时知道API调用的结果,而不是这样做。
您可以做的最好的事情是表明您的API调用可以返回任何一个接口:
public myApiFunc(req: MyRequestModel): Observable<ModelAResponse | ModelBResponse>
但是,这仍然需要您在运行时确定其A
或B
。