tsc · Build e tipos
A mensagem
error TS7006: Parameter 'req' implicitly has an 'any' type.
O que significa
O parâmetro não tem tipo escrito e o tsc não tinha de onde inferir, então ele virou any implicitamente — e o noImplicitAny trata isso como erro. Aparece em arquivos vindos do JavaScript e quando um callback é extraído para a própria variável; já um callback escrito em linha como items.map(x => ...) tem contexto, o tsc infere e isto não dispara. Escrever o tipo ali é a correção. Você também pode escrever any explicitamente, mas isso é decidir desligar a checagem naquele parâmetro por inteiro — quando você não sabe o que é, unknown é mais honesto e obriga a estreitar antes de usar.
A correção
Não há um comando de uma linha. A explicação diz o que verificar.
- 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 TS7006: Parameter 'req' implicitly has an 'any' type.”?
O parâmetro não tem tipo escrito e o tsc não tinha de onde inferir, então ele virou any implicitamente — e o noImplicitAny trata isso como erro. Aparece em arquivos vindos do JavaScript e quando um callback é extraído para a própria variável; já um callback escrito em linha como items.map(x => ...) tem contexto, o tsc infere e isto não dispara. Escrever o tipo ali é a correção. Você também pode escrever any explicitamente, mas isso é decidir desligar a checagem naquele parâmetro por inteiro — quando você não sabe o que é, unknown é mais honesto e obriga a estreitar antes de usar.
Q. Como corrigir?
Não há comando de uma linha. A explicação acima diz o que verificar.
Q. Qual ferramenta imprime isso?
tsc. Fica em Build e tipos e a mensagem tem 9 palavras.