typescript: не удается найти модуль "react"

Я не понимаю, почему он не может найти его.

$ cat tsconfig.json

{
  "compilerOptions": {
    "sourceMap": true,
    "target": "es6",
    "jsx": "react",
    "types": [
      "lodash",
      "react",
      "react-dom"
    ]
  }
}

$ tree node_modules/@types

node_modules/@types/
├── lodash
│   ├── README.md
│   ├── index.d.ts
│   ├── package.json
│   └── types-metadata.json
├── react
│   ├── README.md
│   ├── index.d.ts
│   ├── package.json
│   └── types-metadata.json
└── react-dom
    ├── README.md
    ├── index.d.ts
    ├── package.json
    ├── server.d.ts
    └── types-metadata.json

импорт в файл компонента.

// src/components/component.tsx

import * as React from "react";

что это дает?

4 ответов


если вы не используете typescript 2.1, вы должны перейти на него. похоже, ты используешь двойку.X версия из @типов, которые у вас есть.

вот работает tsconfig.json файл, который я использую прямо сейчас:

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "moduleResolution": "node",
    "noResolve": false,
    "noImplicitAny": false,
    "removeComments": true,
    "sourceMap": true,
    "allowJs": true,
    "jsx": "react"
  },
  "exclude": [
    "./node_modules/**/*"
  ]
}

прошло несколько дней с тех пор, как я решил ту же проблему, что и у вас, но я думаю, что ключ здесь -"moduleResolution": "node" и "allowJs": true.


У меня была та же проблема. Вам просто нужно установить @типа:

npm i -D @types/react

как в версии 2.4.* ответственная запись конфигурации этой ошибки (в большинстве случаев):

"compilerOptions": {
          ...
          "moduleResolution": "node" <---------- this entry
          ...
}

надеюсь, это кому-то поможет !


const React = require("react");

это исправило проблему.