Olá, Carlos! Entendo que você está com dificuldades na utilização do Object.assign()
e na conversão de tipos com o TypeScript. Vamos tentar esclarecer isso.
O erro que você está enfrentando ocorre porque você está tentando converter um objeto para um tipo que não é compatível, ou seja, o TypeScript está informando que existem propriedades no objeto ProdutoEntity
que não existem no objeto que você está tentando converter.
Uma solução para isso seria criar uma interface que contenha apenas as propriedades comuns entre os dois objetos. Por exemplo:
interface IProdutoComum {
nome: string;
valor: number;
// outras propriedades comuns
}
const produtoEntity = new ProdutoEntity();
Object.assign(produtoEntity, dadosProduto as IProdutoComum);
Neste caso, IProdutoComum
contém apenas as propriedades que são comuns entre ProdutoEntity
e o objeto que você está tentando converter (dadosProduto
). Assim, o TypeScript não reclamará sobre propriedades inexistentes.
No entanto, essa abordagem pode não ser ideal se você tem muitas propriedades e não quer criar uma interface para cada caso. Infelizmente, o TypeScript não oferece uma maneira fácil de dizer "ignore as propriedades extras e apenas verifique as que estão presentes em ambos os objetos". Portanto, a solução acima pode ser a mais adequada para o seu caso.
Espero ter ajudado e bons estudos!