1
resposta

[Dúvida] TypeScript - @BeforeInsert - is declared but its value is never read

Tenho o seguinte código:

@BeforeInsert() @BeforeUpdate() private async criptografarSenha() { if (this.senha) { this.senha = criarSenhaCriptografada(this.senha) } }

E o servidor está dando o seguinte erro: src/entities/AbrigoEntity.ts(59,17): error TS6133: 'criptografarSenha' is declared but its value is never read

Tenho que fazer alguma alteração na configuração do TypeScript?

1 resposta

Oi, Paulo, tudo certo contigo? :)

Isso pode acontecer quando a função é privada e não é chamada explicitamente no código, mas esperada para ser usada por algum mecanismo do framework ou biblioteca que você está usando.

No caso do TypeORM, que é o que parece estar em uso aqui com os decoradores @BeforeInsert() e @BeforeUpdate(), essas funções são chamadas automaticamente pelo TypeORM antes de inserir ou atualizar a entidade.

Ou seja, o TypeScript não vê uma chamada direta a essa função no seu código. Isso leva ao erro mencionado.

Uma maneira de resolver isso é alterar a configuração do TypeScript para ignorar esse tipo de erro. Você pode fazer isso adicionando ou modificando a opção noUnusedLocals no arquivo tsconfig.json. Seria deste jeito:

{
  "compilerOptions": {
    "noUnusedLocals": false,
    ...
  }
}

Se outra dúvida surgir, estamos disponíveis aqui no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

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