I have added this extension of an express typing
import * as express from "express";
declare global {
namespace Express {
interface Request {
session: session.Session & Partial<session.SessionData>;
}
}
}
I have edited the typescript configuration file like this:
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"typeRoots": ["./src/types", "./node_modules/@types"],
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true,
"outDir": "./dist",
"rootDir": "./src"
},
"include": ["src/**/*.ts", "src/types/**/*.d.ts"]
}
And the structure of my project is as follows: enter image description here
Why do I get this error when starting my node server with "npx ts-node src/index.ts"
TS2339: Property 'session' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.
26 req.session.user = data;
~~~~~~~
at createTSError (C:\PROYECTOS\GITHUB_PROYECTS\Gero-Universe\gero-universe-api\node_modules\ts-node\src\index.ts:859:12)
at reportTSError (C:\PROYECTOS\GITHUB_PROYECTS\Gero-Universe\gero-universe-api\node_modules\ts-node\src\index.ts:863:19)
at getOutput (C:\PROYECTOS\GITHUB_PROYECTS\Gero-Universe\gero-universe-api\node_modules\ts-node\src\index.ts:1077:36)
at Object.compile (C:\PROYECTOS\GITHUB_PROYECTS\Gero-Universe\gero-universe-api\node_modules\ts-node\src\index.ts:1433:41)
at Module.m._compile (C:\PROYECTOS\GITHUB_PROYECTS\Gero-Universe\gero-universe-api\node_modules\ts-node\src\index.ts:1617:30)
at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
at Object.require.extensions.<computed> [as .ts] (C:\PROYECTOS\GITHUB_PROYECTS\Gero-Universe\gero-universe-api\node_modules\ts-node\src\index.ts:1621:12)
at Module.load (node:internal/modules/cjs/loader:1288:32)
at Function.Module._load (node:internal/modules/cjs/loader:1104:12)
at Module.require (node:internal/modules/cjs/loader:1311:19) {
diagnosticCodes: [ 2339 ]
}
I have tried everything possible to try to get typescript to detect the typing I have added but there is no way.
It works when i start my server with:
npx ts-node --files src/index.ts
or
npx ts-node -T src/index.ts