У меня есть следующий интерфейс:
export interface ObjLookup {
owner?: IObjOwner;
contacts?: IOwnerContacts[];
location?: IOwnerLocation;
}
И это включает в себя следующие интерфейсы:
export interface IObjOwner {
lastName?: string,
firstName?: string;
}
export interface IOwnerContacts {
name?: string;
address?: string;
email?: string;
}
export interface IOwnerLocation {
address?: string;
city?: string;
state?: string;
zip?: number;
country?: string;
}
Теперь мой объект ответа выглядит примерно так:
{
status: "success",
is_error: false,
errors: [],
data: {
owner: {
lastName: "lovejoy",
firstName: "reverend"
},
contacts: [
{
name: "homer simpson",
address: "3 evergreen terrace, springfield, XX XX823",
email: "homer@springfieldnuclearpower.net"
},
{
name: "ned flanders",
address: "5 evergreen terrace, springfield, XX XX823",
email: "ned@somechurch.god"
}
],
location: {
address: "the church",
city: "Springfield",
state: "XX",
zip: XX823,
country: "US"
}
}
}
Пожалуйста, игнорируйте любые синтаксические ошибки в ответе json, когда я его печатал.
В любом случае, я думаю, что мне нужно сделать что-то вроде отображения ответа с помощью наблюдаемых, трубопроводов и прочего. То, что у меня пока есть:
export class SimpsonsService {
public resourceUrl = 'www.example.com/api/simpsons';
constructor ( protected http: HttpClient) {}
find(name: string): Observable<EntityResponseType> {
return this.http.get<ObjLookup>(`${this.resourceUrl}/${name}`)
.pipe(
map(respObj => {
const
})
);
});
}
}
Я пробовал несколько представлений, где мне нужно извлечь объект ответа и создать несколько отдельных типов, сопоставленных с различными интерфейсами, а затем включить их как часть большего типа ответа ObjLookup
.
Что мне нужно сделать, чтобы перехватить соответствующие объекты данных как часть response.data.owner
, response.data.contacts
, response.data.location
объектов?