Início·Mensagens de erro

tsc · Build e tipos

A mensagem

error TS2307: Cannot find module 'lodash' or its corresponding type declarations.

O que significa

O tsc não achou nem o módulo nem qualquer declaração de tipos para ele, e importa que a mensagem diga as duas coisas — o pacote pode estar ausente, ou instalado sem tipos. Se está instalado, o que falta são os tipos: npm i -D @types/lodash acrescenta o pacote companheiro, embora muitos pacotes modernos já tragam seus próprios tipos e não tenham @types. Quando isso aparece num import relativo, olhe a caixa das letras e as paths do tsconfig — um caminho para seus próprios arquivos não tem relação com @types.

A correção

npm i -D @types/lodash
Impresso por
tsc
Build e tipos
10

Erros de build são uma ferramenta recusando antes de qualquer execução, então não quebram nada no momento em que aparecem — mas fazem duas perguntas: você vai corrigir o tipo ou o caminho para bater com a forma real, ou vai empurrar aquela linha com um as any ou um comentário de supressão? E é aqui que as coisas verdadeiras só na sua máquina — caixa das letras, extensões e variáveis de ambiente — aparecem pela primeira vez.

Como ler uma mensagem de erro

  • Leia da primeira linha para baixo. Quanto mais abaixo, mais são as tripas da ferramenta; a causa costuma estar no topo.
  • Se há arquivo e número de linha, comece ali — não o quadro superior da pilha, e sim a linha mais alta que nomeie um arquivo seu.
  • Pesquise a mensagem literal, mas tire primeiro seus caminhos e nomes de variáveis: é isso que impede a busca de casar.
  • A mesma condição é redigida de formas diferentes conforme a versão. Se os resultados não batem, some o número da versão.
  • Antes de colar uma correção, veja o que ela descarta. Algumas não dá para desfazer.

Perguntas frequentes

Q. O que significa “error TS2307: Cannot find module 'lodash' or its corresponding type declarations.”?

O tsc não achou nem o módulo nem qualquer declaração de tipos para ele, e importa que a mensagem diga as duas coisas — o pacote pode estar ausente, ou instalado sem tipos. Se está instalado, o que falta são os tipos: npm i -D @types/lodash acrescenta o pacote companheiro, embora muitos pacotes modernos já tragam seus próprios tipos e não tenham @types. Quando isso aparece num import relativo, olhe a caixa das letras e as paths do tsconfig — um caminho para seus próprios arquivos não tem relação com @types.

Q. Como corrigir?

npm i -D @types/lodash — antes de rodar, veja acima o que este comando descarta.

Q. Qual ferramenta imprime isso?

tsc. Fica em Build e tipos e a mensagem tem 11 palavras.

Erros próximos