Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Sugestão] Erro: TypeError [ERR_INVALID_ARG_TYPE]: The

Nos estudos esse erro acontece pelo motivo de que export function contaPalavras(texto) em index.js é um void, ou seja no código original da aula não retorna nada. Não sei se foi um erro corrigido depois ou não percebido.
Para quem tem problema, basta apenas dar um return em contagem, ou um return no próprio flatMap.
//código original da AULA:
export function contaPalavras(texto)
{
const paragrafos = extraiParagrafos(texto);
const contagem = paragrafos.flatMap((paragrafo) => {
if (!paragrafo) return [];
return verificaPalavrasDuplicadas(paragrafo);
})
console.log(contagem);
}

//Correções sugeridas

//com return no fim do código:
export function contaPalavras(texto)
{
const paragrafos = extraiParagrafos(texto);
const contagem = paragrafos.flatMap((paragrafo) => {
if (!paragrafo) return [];
return verificaPalavrasDuplicadas(paragrafo);
})
console.log(contagem);
return contagem;
}

// ou no próprio flatMap
export function contaPalavras(texto)
{
const paragrafos = extraiParagrafos(texto);

return paragrafos.flatMap((paragrafo) => {
if (!paragrafo) return [];
return verificaPalavrasDuplicadas(paragrafo);
});

}

1 resposta
solução!

Oi, Jonathan! Como vai?

Você trouxe uma observação muito importante sobre o comportamento da função contaPalavras(). Do jeito que você explicou, ficou claro que o problema estava no fato da função não retornar o resultado do flatMap, causando o TypeError em etapas posteriores do código. Sua sugestão usando return contagem; ou retornando diretamente o flatMap() deixou a função mais organizada e funcional.

Uma dica interessante para o futuro é utilizar Array.filter() antes do flatMap() para evitar valores vazios no array. Veja este exemplo:


const paragrafos = extraiParagrafos(texto)
  .filter(paragrafo => paragrafo);

const resultado = paragrafos.flatMap(paragrafo =>
  verificaPalavrasDuplicadas(paragrafo)
);

console.log(resultado);

Nesse código, o filter() remove itens vazios antes da verificação das palavras, deixando o processamento mais limpo.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!