web-dev-qa-db-fra.com

Le tapuscrit ne peut pas trouver redux

Je reçois l'erreur suivante:

node_modules/@types/react-redux/index.d.ts(8,24): error TS2307: Cannot find module 'redux'.

malgré avoir installé les deux react-redux et redux (package.json):

"dependencies": {
    "react": "15.4.2",
    "react-native": "0.42.3",
    "react-redux": "^5.0.3",
    "redux": "^3.6.0"
},
"devDependencies": {
    "@types/react": "^15.0.18",
    "@types/react-native": "^0.42.9",
    "@types/react-redux": "^4.4.38",
    "@types/redux": "^3.6.0",
    "babel-jest": "19.0.0",
    "babel-preset-react-native": "1.9.1",
    "jest": "19.0.2",
    "react-test-renderer": "15.4.2",
    "tslint": "^4.5.1",
    "TypeScript": "^2.2.1"
},

Le README.md fichier dans @types/redux dit:

This is a stub types definition for Redux (https://github.com/reactjs/redux).
Redux provides its own type definitions, so you don't need @types/redux installed!

mais désinstaller le @types/redux le package ne fait aucune différence.

Des idées?

MISE À JOUR

J'ai pensé qu'en ajoutant un index.d.ts au @types/redux répertoire (contenant uniquement export * from ../../redux/index), cela résoudrait le problème, mais pas de joie.

Voici mon tsconfig.json:

{
    "compilerOptions": {
        "target": "es2015",
        "module": "es2015",
        "jsx": "react",
        "outDir": "build",
        "rootDir": "src",
        "allowSyntheticDefaultImports": true,
        "noImplicitAny": true,
        "experimentalDecorators": true,
        "preserveConstEnums": true,
        "allowJs": true,
        "sourceMap": true
    },
    "filesGlob": [
        "src/**/*.ts",
        "src/**/*.tsx"
    ],
    "exclude": [
        "__tests__",
        "index.Android.js",
        "index.ios.js",
        "build",
        "node_modules"
    ],
    "compileOnSave": false
}

et j'ai définitivement supprimé le @types/redux répertoire de node_modules. J'utilise (évidemment) TypeScript 2.2.1.

MISE À JOUR 2

Code utilisant redux:

import { combineReducers } from "redux"

export default combineReducers({})

Notez que l'ajout d'un point-virgule après "redux" n'aide pas.

21
Ralph

J'ai rencontré le même problème sur un projet natif réactif. Cette correction a fonctionné pour moi:

Vous devez ajouter "moduleResolution": "node" aux options du compilateur afin d'inclure les définitions de type liées dans les fichiers package.json.

Documentation ici https://www.typescriptlang.org/docs/handbook/module-resolution.html

62
Andrew Sinner

Je suis revenu à @types/[email protected] et cela a résolu le problème. Cette version inclut le index.d.ts fichier pour redux. Il peut y avoir un problème avec le compilateur TypeScript qui ne recherche pas le index.d.ts fichier dans la normale node_modules/redux répertoire, mais uniquement sous node_module/@types.

6
Ralph

Si vous rencontrez le même problème avec la version React suivante "^16.8.6" vérifier si le package npm redux

Package.json

"dependencies": {
    "@types/jest": "24.0.13",
    "@types/node": "12.0.3",
    "@types/react": "16.8.19",
    "@types/react-dom": "16.8.4",
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "react-redux": "^7.0.3",
    "react-scripts": "3.0.1",
    "redux": "^4.0.1",
    "typesafe-actions": "^4.4.0",
    "TypeScript": "3.5.1"
  },

s'il n'est pas installé, faites simplement npm install redux pas besoin d npm i @types/reduxen tant que package Redux fournit ses propres définitions de type, vous n'avez donc pas besoin de @types/redux installée!

0
BRAHIM Kamel

J'ai déjà eu moduleResolution: 'node' et @types/redux A été supprimée. Mais quand j'ai supprimé node_modules et réinstallé, le problème a disparu. :hausser les épaules.

0
Jeremy John