reactjs - Interfața 'NodeModule' nu poate extinde simultan tipurile 'Module' și 'Module'
Folosesc React. După ce am rulat create-react-app --typescript, am adăugat câteva biblioteci în package.json, după care am primit o excepție la rulare.
TypeScript error in D:/catalog/node_modules/@types/node/globals.d.ts(223,11):
Interface 'NodeModule' cannot simultaneously extend types 'Module' and 'Module'.
Named property 'hot' of types 'Module' and 'Module' are not identical. TS2320
221 | declare var require: NodeRequire;
222 |
> 223 | interface NodeModule {
| ^
224 | exports: any;
225 | require: NodeRequireFunction;
226 | id: string;
Am încercat 1) să șterg node_modules/ și să instalez din nou 2) să golesc cache-ul
Din fericire, proiectul meu se construiește, dar apare o excepție la rulare în package.json-ul meu
{
"dependencies": {
"@types/bootstrap": "^4.2.0",
"@types/faker": "^4.1.4",
"@types/node": "12.11.2",
"@types/parcel-env": "^0.0.0",
"@types/ramda": "^0.25.48",
"@types/react-dom": "16.9.2",
"@types/react-router": "^4.4.3",
"@types/react-router-dom": "^4.3.1",
"@types/recompose": "^0.30.3",
"@types/styled-components": "4.1.16",
"react": "^16.10.2",
"react-dom": "^16.10.2",
"react-scripts": "3.2.0",
"remotedev": "^0.2.9",
"yarn-deduplicate": "^1.1.1"
},
"devDependencies": {
"@types/react": "16.8.19",
"@types/enzyme": "^3.9.0",
"@types/enzyme-adapter-react-16": "^1.0.5",
"@types/jest": "^23.3.10",
"@types/webpack": "^4.4.24",
"@types/webpack-env": "^1.13.6",
"awesome-typescript-loader": "^5.2.1",
"cross-env": "^5.2.0",
"enzyme": "^3.9.0",
"enzyme-adapter-react-16": "^1.12.1",
"lerna": "^3.15.0",
"prettier": "^1.15.3",
"tslint": "^5.12.0",
"tslint-config-prettier": "^1.17.0",
"tslint-eslint-rules": "^5.4.0",
"tslint-loader": "^3.5.4",
"tslint-plugin-prettier": "^2.0.1",
"tslint-react": "^3.6.0",
"typescript": "3.6.4",
"typescript-plugin-styled-components": "^1.0.0"
},
"resolutions": {
"@types/react": "16.8.19"
},
}
React/typescript/yarn.
Răspuns #1
Încearcă să actualizezi @types/webpack-env la cea mai recentă versiune. A funcționat pentru mine.
Răspunsul #2
Acest lucru înseamnă de obicei că versiunea de @types/node pe care ați specificat-o în devDependencies din package.json este incompatibilă cu cea utilizată în mod intern de una dintre dependențele dvs.
De exemplu, vei primi această eroare dacă ai specificat "@types/node": "13.9.1" dar folosești "@nestjs/cli": "^7.0.0" deoarece această bibliotecă folosește ea însăși "@types/node": "12.12.31".
O soluție temporară pentru aceasta este să reduceți versiunea @types/node a proiectului la cel mai mic numitor comun, astfel "12.12.31" în acest exemplu.