Существует следующая проблема:
Когда я получаю данные из моего бэкэнда, длительность не будет правильно выбрана. Он будет инициализирован как число в секундах.
export class Booking {
id: number;
projectId: number;
userId: number;
bookedTime: Duration;
workDate: LocalDate;
description: string;
}
Когда я получу ответ, все будет правильно, кроме Длительности.
В настоящее время я делаю это, чтобы преобразовать значение после того, как я его выбрал, и это единственный способ заставить это работать:
this.timeTrackingService.findByProjectDateBetween(projectId, LocalDate.of(2020, 3, 1), LocalDate.of(2020, 3, 31))
.subscribe((bookings: Booking[]) => {
bookings.forEach(booking => {
booking.bookedTime = Duration.ofSeconds(Number(booking.bookedTime));
});
Но я хочу иметь правильно сериализованную Duration без этого ,
Вот что я попробовал:
export class Booking {
private _bookedTime: Duration;
id: number;
projectId: number;
userId: number;
workDate: LocalDate;
description: string;
set bookedTime(value:Duration){
this._bookedTime = Duration.ofSeconds(Number(value));
}
get bookedTime(): Duration{
if(isNumber(this._bookedTime))
this._bookedTime = Duration.ofSeconds(Number(this._bookedTime));
return this._bookedTime;
}
}
Но все равно будет ошибка "booking.bookedTime.toHours()" is not a function
За исключением того, что я преобразую это вручную.
У вас есть решение для подсказки по этой проблеме?