1
resposta

Erro na conversão utilizando O Object assing

Quando tento colocar a propriedade "dadosProdutos as ProdutoEntity", tenho o retorno do seguinte erro . Insira aqui a descrição dessa imagem para ajudar na acessibilidadeParece q o erro ocorre porque ah informações em um termo que o no outro nao foram criadas, como Id, CreatedAt, DeletedAt com é mostado na imagem. Gostaria de saber se tem alguma solução onde o typescript possa buscar só os termos q são iguais entre os dois temos

1 resposta

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!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software