Esta respuesta será beneficiosa para aquellos que confían en el paquete npm ts-node
.
También estaba luchando con la misma preocupación de extender el objeto de solicitud , seguí muchas respuestas en el desbordamiento de pila y terminé siguiendo la estrategia que se menciona a continuación.
Declaré escritura extendida para expreso en el siguiente directorio.${PROJECT_ROOT}/api/@types/express/index.d.ts
declare namespace Express {
interface Request {
decoded?: any;
}
}
luego actualizo mi tsconfig.json
a algo como esto.
{
"compilerOptions": {
"typeRoots": ["api/@types", "node_modules/@types"]
...
}
}
incluso después de realizar los pasos anteriores, Visual Studio dejó de quejarse, pero desafortunadamente, el ts-node
compilador todavía solía lanzar.
Property 'decoded' does not exist on type 'Request'.
Aparentemente, ts-node
no pudo ubicar las definiciones de tipo extendido para la solicitud objeto de .
Finalmente, después de pasar horas, sabía que el Código VS no se quejaba y pude ubicar las definiciones de escritura, lo que implica que algo anda mal con el ts-node
cumplidor.
Actualización de inicio script
en package.json
fijo por mí.
"start": "ts-node --files api/index.ts",
los --files
argumentos juegan un papel clave aquí para determinar las definiciones de tipos personalizados.
Para obtener más información, visite: https://github.com/TypeStrong/ts-node#help-my-types-are-missing