Я получаю JSON объект из API. В сервисе у меня есть:
getUserInfo(token: string): Observable<IUser> {
return this.http.get<any>(this.apiUrl.getUser, {headers: {'X-Auth-Token': token}}).pipe(
tap(data => console.log(data)),
catchError(this.handleError)
);
}
В компоненте:
this.authenticationService.getUserInfo(this.token).subscribe({
next: result => {
this.user = result;
console.log(this.user);
},
error: err => console.log(err)
})
Это мой интерфейс (упрощенно):
export class IUser {
username: string;
email: string;
role: string;
numberOfUsers: number;
expirationDate: string;
}
Есть ли способ автоматического сопоставления JSON от http-запроса к этому интерфейсу, поэтому:
- Если свойство не существует в JSON объекте из запроса, установите для него значение по умолчанию, например, numberOfUsers = 0 или expirationDate = null.
- Если в объекте JSON есть дополнительное свойство из запроса, просто проигнорируйте его.
В настоящее время пользователь перезаписывается значениями из JSON объекта из запроса.
Есть ли какая-нибудь автоматическая c функция Objectable, которая бы это делала? Или я должен написать этот метод в интерфейсе?