javascript - Proprietatea '' nu există pe tipul 'Request<ParamsDictionary>'
Când încerc să extind interfața Request din pachetul express pentru a adăuga câteva proprietăți personalizate, primesc următoarea eroare TypeScript:
TS2339: Property '' does not exist on type 'Request<ParamsDictionary>'.Știi cum să rezolvi asta?
Răspuns #1
De la o actualizare recentă a tipurilor și a dependențelor, am constatat că următoarele ar trebui să remedieze erorile din aplicația ta.
În fișierul tău tsconfig.json
{
"compilerOptions": {
//...
"typeRoots": [
"./custom_typings",
"./node_modules/@types"
],
}
// ...
}
Și în tipizările tale personalizate
// custom_typings/express/index.d.ts
declare namespace Express {
interface Request {
customProperties: string[];
}
}
Răspunsul #2
Recent am avut aceeași problemă, am urmat soluția din comentariile anterioare și acest repository și tot am avut aceeași problemă. După ce am cercetat mai mult, se pare că este un bug cu ts-node.
Pentru a rezolva asta trebuie să rulezi serverul tău cu un flag --files
Deci, dacă de obicei rulezi serverul tău cu ts-node ./src/server.ts sau nodemon ./src/server.ts, schimbă-l în ts-node --files ./src/server.ts sau nodemon --files ./src/server.ts
După aceea, am reușit să scap atât de erorile din VScode, cât și de erorile apărute la pornirea serverului.
