"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como resolvi meu problema de configuração do TypeScript: O usuário da propriedade não existe no tipo Solicitação.

Como resolvi meu problema de configuração do TypeScript: O usuário da propriedade não existe no tipo Solicitação.

Publicado em 2024-11-02
Navegar:817

How I Fixed My TypeScript Setup Issue: Property user does not exist on type Request.

O problema
Estou trabalhando em um projeto Node.js com TypeScript e Express.js. A certa altura, precisei anexar um objeto de usuário ao objeto Express Request, mas me deparei com este erro TypeScript:

A propriedade 'usuário' não existe no tipo 'Solicitação'.

Percebi rapidamente que isso acontece porque o objeto Request padrão do Express não inclui uma propriedade de usuário e o TypeScript não gostou disso.

Minha correção inicial
Para corrigir isso, estendi a interface Request para adicionar a propriedade do usuário. Veja como eu fiz:

  1. Criei um novo arquivo chamado express.d.ts na pasta types do meu projeto:
// src/types/express.d.ts
import { User } from '@prisma/client'; // Assuming User is a Prisma model

declare global {
    namespace Express {
        interface Request {
            user?: User; // Add user to the Request interface
        }
    }
}
  1. Atualizei meu tsconfig.json para garantir que o TypeScript escolhesse esse novo tipo:
{
  "compilerOptions": {
    //extra options here
    "typeRoots": ["./node_modules/@types", "./src/types"] // Add the types folder
  }
}

Neste ponto, o erro desapareceu do meu editor de código, então pensei ter resolvido o problema. Mas quando tentei executar o projeto, encontrei outro erro no terminal:

erro TS2339: A propriedade 'usuário' não existe no tipo 'Solicitação'.

Preso por dias
Passei de 3 a 4 dias solucionando isso, tentando tudo que pude encontrar online. Fiquei completamente preso e não conseguia descobrir por que não estava funcionando.

A solução
Finalmente, descobri a raiz do problema e corrigi-o com estas etapas:

  1. Instalar TypeScript globalmente: percebi que não tinha o compilador TypeScript (tsc) instalado globalmente, então executei este comando:

npm install -g texto digitado

  1. Execute o compilador TypeScript no modo Watch: usei o sinalizador --watch para recompilar automaticamente meu código TypeScript enquanto trabalhava:
    tsc --assistir

  2. Reiniciar meu editor de código: reiniciei meu editor (VS Code no meu caso) para ter certeza de que tudo foi carregado corretamente.

  3. Executar o projeto: depois de reiniciar, executei o projeto novamente - e funcionou!

Conclusão
O que pensei que seria um pequeno problema se transformou em dias de frustração, mas finalmente consegui fazer funcionar! Se você estiver enfrentando problemas semelhantes com o TypeScript não reconhecendo novas propriedades no objeto Request do Express, lembre-se de:

Estenda a interface de solicitação corretamente.
Certifique-se de que o compilador TypeScript (tsc) esteja instalado e funcionando corretamente.
Espero que isso ajude qualquer pessoa que esteja presa como eu!

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/nikhilagr15/how-i-fixed-my-typescript-setup-issue-property-user-does-not-exist-on-type-request-46fj?1Se houver houver qualquer violação, entre em contato com [email protected] para excluir
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3