Typescript не может найти сокращение
Я получаю следующую ошибку:
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"
},
Файл README.md
в @types/redux
говорит:
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
не имеет значения.
Любые идеи?
UPDATE
Я думал, что добавив index.d.ts
в каталог @types/redux
(содержащий только 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
}
и я определенно удалил каталог @types/redux
из node_modules
. Я (очевидно) работает TypeScript 2.2.1.
ОБНОВЛЕНИЕ 2
Код с использованием redux
:
import { combineReducers } from "redux"
export default combineReducers({})
Обратите внимание, что добавление точки с запятой после "redux"
не помогает.
Ответы
Ответ 1
Я столкнулся с той же проблемой в проекте с реакцией. Это исправление работало для меня:
Вы должны добавить "moduleResolution": "node" к параметрам компилятора, чтобы включить определения типов, связанные с файлами package.json.
Документация здесь https://www.typescriptlang.org/docs/handbook/module-resolution.html
Ответ 2
Я вернулся к @types/[email protected]
и решил эту проблему. Эта версия включает файл index.d.ts
для redux. Может возникнуть проблема с компилятором TypeScript, который не ищет файл index.d.ts
в обычном каталоге node_modules/redux
, но только под node_module/@types
.
Ответ 3
У меня уже было moduleResolution: 'node'
и @types/redux
были удалены. Но когда я удалил node_modules
и переустановил, проблема ушла. : Пожимание плечами.