Подтвердить что ты не робот

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" не помогает.

4b9b3361

Ответ 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 и переустановил, проблема ушла. : Пожимание плечами.