Questa risposta sarà vantaggiosa per coloro che si affidano al pacchetto npm ts-node .
Stavo anche lottando con la stessa preoccupazione di estendere l' oggetto richiesta , ho seguito molte risposte in stack-overflow e ho finito con la strategia sotto menzionata.
Ho dichiarato la digitazione estesa per express nella seguente directory.${PROJECT_ROOT}/api/@types/express/index.d.ts
declare namespace Express {
interface Request {
decoded?: any;
}
}
quindi aggiornare il mio tsconfig.jsona qualcosa di simile.
{
"compilerOptions": {
"typeRoots": ["api/@types", "node_modules/@types"]
...
}
}
anche dopo aver eseguito i passaggi precedenti, lo studio visivo ha smesso di lamentarsi, ma sfortunatamente il ts-nodecompilatore continuava a lanciare.
Property 'decoded' does not exist on type 'Request'.
Apparentemente, ts-nodenon è stato possibile individuare le definizioni di tipo estese per la richiesta oggetto .
Alla fine, dopo aver trascorso ore, poiché sapevo che il codice VS non si lamentava ed era in grado di individuare le definizioni di battitura, il che implica che qualcosa non va ts-node compilatore.
Aggiornamento inizio scriptin package.jsonfissa per me.
"start": "ts-node --files api/index.ts",
gli --filesargomenti giocano un ruolo chiave qui trovano la determinazione delle definizioni di tipo personalizzato.
Per ulteriori informazioni, visitare: https://github.com/TypeStrong/ts-node#help-my-types-are-missing