打字稿找不到 redux
Typescript cannot find redux
我收到以下错误:
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@3.6.31
并解决了问题。此版本包括用于 redux 的 index.d.ts
文件。 TypeScript 编译器可能有问题,它没有在正常的 node_modules/redux
目录中查找 index.d.ts
文件,而是仅在 node_module/@types
.
下查找
我在一个 react-native 项目上遇到了同样的问题。此修复对我有用:
您必须将 "moduleResolution": "node" 添加到编译器选项,以便包含在 package.json 文件中链接的类型定义。
这里有文档https://www.typescriptlang.org/docs/handbook/module-resolution.html
我已经有 moduleResolution: 'node'
并且 @types/redux
被删除了。但是当我删除 node_modules
并重新安装时,问题就消失了。 :耸肩。
如果您遇到以下 react 版本的相同问题 "^16.8.6"
验证 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"
},
如果没有安装就做 npm install redux
不需要 npm i @types/redux
因为 Redux 包提供了自己的类型定义,所以你不需要 @types/redux
安装!
我收到以下错误:
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@3.6.31
并解决了问题。此版本包括用于 redux 的 index.d.ts
文件。 TypeScript 编译器可能有问题,它没有在正常的 node_modules/redux
目录中查找 index.d.ts
文件,而是仅在 node_module/@types
.
我在一个 react-native 项目上遇到了同样的问题。此修复对我有用:
您必须将 "moduleResolution": "node" 添加到编译器选项,以便包含在 package.json 文件中链接的类型定义。
这里有文档https://www.typescriptlang.org/docs/handbook/module-resolution.html
我已经有 moduleResolution: 'node'
并且 @types/redux
被删除了。但是当我删除 node_modules
并重新安装时,问题就消失了。 :耸肩。
如果您遇到以下 react 版本的相同问题 "^16.8.6"
验证 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"
},
如果没有安装就做 npm install redux
不需要 npm i @types/redux
因为 Redux 包提供了自己的类型定义,所以你不需要 @types/redux
安装!