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.