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.json
a 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-node
compilatore continuava a lanciare.
Property 'decoded' does not exist on type 'Request'.
Apparentemente, ts-node
non è 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 script
in package.json
fissa per me.
"start": "ts-node --files api/index.ts",
gli --files
argomenti 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