Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Solução para o erro: Argument of type 'Item' is not assignable to parameter of type 'string | symbol'.ts(2345)

No componente item.component.ts, estava aparecendo que o parâmetro do método emit() poderia ser somente string ou symbol:

Argument of type 'Item' is not assignable to parameter of type 'string | symbol'.ts(2345)

item.component.ts

  • Causa do problema: O import de EventEmitter estava apontado para stream
import { Component, Input, Output } from '@angular/core';
import { faPen, faTrash } from '@fortawesome/free-solid-svg-icons';
import { Item } from 'src/app/interfaces/iItem';
import { EventEmitter } from 'stream';
  • Solução: Ajustar o import de EventEmitter para @angular/core
import { Component, Input, Output, EventEmitter } from '@angular/core';
import { faPen, faTrash } from '@fortawesome/free-solid-svg-icons';
import { Item } from 'src/app/interfaces/iItem';

Obs: Antes de achar o que estava causando o erro de compilação, contornei o erro passando o id do componente filho para o pai, como parâmetro do método emit(). É uma ideia mas é muito melhor passar o item.

passando o id do item para o componente pai

1 resposta
solução!

Oi Guilherme, tudo bem?

Parece que você já fez um ótimo trabalho identificando e corrigindo o problema! O erro que você estava vendo, "Argument of type 'Item' is not assignable to parameter of type 'string | symbol'.ts(2345)", estava acontecendo porque o import de EventEmitter estava apontado para stream ao invés de @angular/core.

Seu ajuste no import de EventEmitter para @angular/core foi perfeito! O EventEmitter do Angular é o que permite a comunicação entre componentes, emitindo um evento quando algo relevante acontece, e é exatamente isso que você precisa nesse caso.

Sobre sua observação de contornar o erro passando o id do componente filho para o pai, realmente é uma alternativa, mas como você mesmo mencionou, é muito melhor passar o objeto Item inteiro. Isso porque, ao passar o objeto inteiro, você tem acesso a todas as propriedades do item e não apenas ao id, o que pode ser muito útil dependendo do que você precisa fazer.

Obrigada pela solução! Parabéns por contribuir com a comunidade.

Um abraço 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