Cette réponse sera bénéfique pour ceux qui comptent sur le package npm ts-node
.
Je luttais également avec le même souci d'étendre l' objet de requête , j'ai suivi beaucoup de réponses dans le stack-overflow et j'ai fini par suivre la stratégie mentionnée ci-dessous.
J'ai déclaré la saisie étendue pour express dans le répertoire suivant.${PROJECT_ROOT}/api/@types/express/index.d.ts
declare namespace Express {
interface Request {
decoded?: any;
}
}
puis mettre tsconfig.json
à jour mon à quelque chose comme ça.
{
"compilerOptions": {
"typeRoots": ["api/@types", "node_modules/@types"]
...
}
}
même après avoir effectué les étapes ci-dessus, le studio visuel a cessé de se plaindre, mais malheureusement, le ts-node
compilateur avait encore l'habitude de lancer.
Property 'decoded' does not exist on type 'Request'.
Apparemment, le ts-node
n'a pas pu localiser les définitions de type étendues pour l' objet de requête .
Finalement, après avoir passé des heures, car je savais que le code VS ne se plaignait pas et était capable de localiser les définitions de frappe, ce qui implique que quelque chose ne va pas avec le ts-node
complier.
Mise à jour de départ script
en package.json
fixe pour moi.
"start": "ts-node --files api/index.ts",
les --files
arguments jouent ici un rôle clé pour déterminer les définitions de type personnalisées.
Pour plus d'informations, veuillez visiter: https://github.com/TypeStrong/ts-node#help-my-types-are-missing