Допустим, я получаю список продуктов из базы данных и пытаюсь десериализовать данные, используя класс ниже:
export class Product
{
constructor() { this.CartQuantity = 1 }
Id: number;
Name: string;
Price: number;
CartQuantity: number;
}
База данных содержит только Id
, Name
и Price
, тогда как CartQuantity существует только в проекте.Если я десериализую так:
products: Product[];
getProducts() {
this.ProductService.getAllProducts(
(response) => {
this.products = response;
}
);
}
CartQuantity
тогда не определено для каждого продукта.Единственное решение, о котором я знаю, - это добавить цикл for после получения ответа для установки его в 1. Но если у меня много функций, которые извлекают похожие данные, добавление цикла к каждой из них кажется плохим способом сделать это.Есть ли другой способ сделать это похожим на то, что конструктор установил его автоматически?
Редактировать: вот сервисная функция, которая извлекает данные:
getAllProducts(
onSuccess,
onFail = (reason) => console.log(reason)) {
var url = SOME_URL;
var req = this.httpClient.get(url);
var promise = req.toPromise();
promise.then(
onSuccess,
onFail
);
}