我正在使一个Angular 组件依赖于API响应. 我是从API响应中得到这些的.
-
当没有错误的时候
数据:{ 状态:字符串; 数据:编号; }
-
当出现错误时,我会得到这个.
数据:{ 状态:字符串; 错误:字符串; 消息:字符串; }
正如我们所看到的,状态是很常见的,我try 实现了这一点.
interface ApiModel {
Status: string;
}
interface DataModel extends ApiModel {
Data: number;
}
interface ErrorModel extends ApiModel {
ErrorCode: string;
Message: string;
}
我正在try 使用打字脚本为它提供一个选项,其中它可以是任一类型,然后将该类型也传递给它的响应.
我不想在这里使用可选类型,因此我面临着这些问题.
我所期待的是,
if (typeof Response === DataModel){
Response: DataModel;
// Other code
}
else {
Response:ErrorModel;
// Other code
}
此处的API调用
getReminder(reminderId: number) {
const API_URL = `${this.BASE_URL}users/${this.userId}/reminders/${reminderId}`;
return this.httpClient.get<ErrorModel | DataModel>(API_URL, this.options).pipe(
map((data: ErrorModel | DataModel) => {
return data;
})
);
}