Estou obtendo a seguinte mensagem de erro:
Type '[affectedCount: number]' is not assignable to type '[number, Produto[]]'.
Source has 1 element(s) but target requires 2.
No trecho:
async alterar(produto: Produto): Promise<[number, Produto[]]> {
return this.produtoModel.update(produto, {
where: {
id: produto.id,
},
});
}
Minha classe Produto:
import { Column, DataType, Model, Table } from 'sequelize-typescript';
@Table
export class Produto extends Model<Produto> {
@Column({
type: DataType.STRING(60),
allowNull: false,
})
codigo: string;
@Column({
type: DataType.STRING,
allowNull: false,
})
nome: string;
@Column({
type: DataType.DECIMAL(10, 2),
allowNull: false,
})
preco: number;
}
Meu service:
import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/sequelize';
import { Produto } from './produto.model';
@Injectable()
export class ProdutosService {
constructor(
@InjectModel(Produto)
private produtoModel: typeof Produto,
) {}
async obterTodos(): Promise<Produto[]> {
return this.produtoModel.findAll();
}
async obterUm(id: number): Promise<Produto> {
return this.produtoModel.findByPk(id);
}
async criar(produto: Produto) {
this.produtoModel.create(produto);
}
async alterar(produto: Produto): Promise<[number, Produto[]]> {
return this.produtoModel.update(produto, {
where: {
id: produto.id,
},
});
}
async apagar(id: number) {
const produto: Produto = await this.obterUm(id);
produto.destroy();
}
}