I am getting the following error:
node_modules/@types/react-redux/index.d.ts(8,24): error TS2307: Cannot find module 'redux'.
despite having installed both react-redux
and 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"
},
The README.md
file in @types/redux
says:
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!
but uninstalling the @types/redux
package makes no difference.
Any ideas?
UPDATE
I thought that by adding an index.d.ts
to the @types/redux
directory (containing only export * from ../../redux/index
), it would solve the problem, but no joy.
Here is my 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
}
and I definitely deleted the @types/redux
directory from node_modules
. I am (obviously) running TypeScript 2.2.1.
UPDATE 2
Code using redux
:
import { combineReducers } from "redux"
export default combineReducers({})
Note that adding a semicolon after "redux"
does not help.
As of React-Redux v8, React-Redux is fully written in TypeScript, and the types are included in the published package. The types also export some helpers to make it easier to write typesafe interfaces between your Redux store and your React components.
To solve the error "Module not found: Error: Can't resolve 'redux'", make sure to install the redux package by opening your terminal in your project's root directory and running the command npm install redux react-redux and restart your development server.
I experienced the same problem on a react-native project. This fix worked for me:
You have to add "moduleResolution": "node" to the compiler options in order to include type definitions linked in package.json files.
Documentation here https://www.typescriptlang.org/docs/handbook/module-resolution.html
I reverted to @types/[email protected]
and that resolved the problem. This version includes the index.d.ts
file for redux. There might be a problem with the TypeScript compiler not looking for the index.d.ts
file in the normal node_modules/redux
directory, but only under node_module/@types
.
If you encounter the same issue with the following react version "^16.8.6"
verify if the npm redux package
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"
},
if not installed just do npm install redux
no need for npm i @types/redux
as Redux package provides its own type definitions, so you don't need @types/redux
installed!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With