jac*_*iao 4 rxjs typescript angular2-observables angular
我有一个 api 函数,它执行 post 并返回 ModelAResponse 的 Observable (我拥有的接口)
我希望两个根据返回的状态返回 ModelAResponse 或 B 的 Observable。
这是我的两个响应模型:
export interface ModelAResponse {
res: ModelA;
}
export interface ModelBResponse {
res: ModelB
}
Run Code Online (Sandbox Code Playgroud)
(ModelA、ModelB是放置在另一个类中的接口)
所以目前我只支持模型 a 的一次返回:
public myApiFunc(req: MyRequestModel): Observable<ModelAResponse> {
...
this.http.post("my/api/path", req, {headers: myHeaders}),
(jsonReturned) => status === 200 ? {res: jsonReturned} : undefined);
...
}
Run Code Online (Sandbox Code Playgroud)
如何更改此函数以根据打字稿最佳实践方式的状态返回 ModelAResponse 或 ModelBResponse?
你不能这样做。Typescript 只能在构建时基于静态分析来键入内容,您的描述需要 Typescript 在构建时知道 API 调用的结果,但它不会这样做。
您能做的最好的事情就是表明您的 API 调用可以返回您的任一接口:
public myApiFunc(req: MyRequestModel): Observable<ModelAResponse | ModelBResponse>
Run Code Online (Sandbox Code Playgroud)
但这仍然需要您在运行时弄清楚它是否A是 或B。
| 归档时间: |
|
| 查看次数: |
6223 次 |
| 最近记录: |