В целях развития моего понимания языка машинописи, в то же время изучая Nest JS и mon goose Я попытался провести рефакторинг метода updateProduct
из этого репо из этого ...
async updateProduct(
productId: string,
title: string,
desc: string,
price: number,
) {
const updatedProduct = await this.findProduct(productId);
if (title) {
updatedProduct.title = title;
}
if (desc) {
updatedProduct.description = desc;
}
if (price) {
updatedProduct.price = price;
}
updatedProduct.save();
}
.. к этому ..
async updateProduct(
product: Product
) {
return (<Product>{
...await this.findProduct(product.id),
...product,
}).save();
}
Однако я получаю исключение:
TypeError: Object.assign (...). save - это не функция
Что здесь не так?
Кажется, мне нужен объект модели. Цель состояла в том, чтобы сделать как можно более краткий вызов для обновления одного объекта в моей коллекции mon go (atlas). В конце концов я пришел к следующему:
async updateProduct2(product: Product) {
return await this.productModel.updateOne({_id: product.id}, product);
}
Тем не менее, для моей цели изучения Typescript мне любопытны другие варианты, связанные с модификаторами распространения объектов. Что скажете вы?