【发布时间】:2017-03-24 15:30:28
【问题描述】:
我收到以下错误:
node_modules/@types/react-redux/index.d.ts(8,24): error TS2307: Cannot find module 'redux'.
尽管安装了react-redux 和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"
},
@types/redux 中的 README.md 文件说:
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!
但卸载 @types/redux 包没有任何区别。
有什么想法吗?
更新
我认为通过在@types/redux 目录中添加index.d.ts(仅包含export * from ../../redux/index)可以解决问题,但没有乐趣。
这是我的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
}
我确实从node_modules 中删除了@types/redux 目录。我(显然)正在运行 TypeScript 2.2.1。
更新 2
使用redux的代码:
import { combineReducers } from "redux"
export default combineReducers({})
请注意,在 "redux" 之后添加分号没有帮助。
【问题讨论】:
-
是的,它应该在没有
@types/redux的情况下工作。实际上,当我安装@types/redux时,我认为我遇到了问题......你能提供一段代码来导入 redux 吗? -
只是为了确定,把你的 tsconfig.json 也放在这里。
-
import { createStore, Store, Reducer } from 'redux'这在 typescript 2.3.0-dev.20170320 中工作得很好 -
@Ralph 确保
@types/redux确实从您的node_modules目录中删除,而不仅仅是从您的package.json中删除 -
@Erik:恢复到
@types/redux@3.6.31解决了这个问题。我怀疑 TypeScript 编译器有问题。
标签: typescript redux react-redux