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.
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
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
.
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/redux
en tant que package Redux fournit ses propres définitions de type, vous n'avez donc pas besoin de @types/redux
installée!
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.