javascript - 导入react的方式有什么问题

标签 javascript reactjs typescript

我最近遇到导入错误。
如果我通过 import React from 'react' 导入 React,vscode 会提示错误(如下图),但是 import * as React from 'react' 可以修复这个错误,我猜我的 babel 配置有问题,问题出在哪里?

下面是 package.json 文件:

{
  "name": "demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "webpack --mode production",
    "start": "webpack-dev-server --mode development --open",
    "build": "webpack --mode production"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@types/react": "^16.9.13",
    "@types/react-dom": "^16.9.4",
    "@types/react-redux": "^7.1.5",
    "react": "^16.12.0",
    "react-dom": "^16.12.0",
  },
  "babel": {
    "presets": [
      "es2015",
      "react"
    ]
  },
  "devDependencies": {
    "@babel/core": "^7.7.4",
    "@babel/preset-react": "^7.7.4",
    "awesome-typescript-loader": "^5.2.1",
    "babel-loader": "^7.1.5",
    "babel-preset-env": "^1.7.0",
    "babel-preset-es2015": "^6.24.1",
    // other dependencies...
  }
}

wrong

correct

最佳答案

tsconfig.json 文件的编译器选项中,将 esModuleInterop 设置为 true

 {
   "compilerOptions": {
      "esModuleInterop": true,

然后您将能够正确导入它,而不会出现 TS 警告。

关于javascript - 导入react的方式有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59050834/

相关文章:

javascript - vuex 是 state.array.push 响应式(Reactive)的吗?

javascript - TinyMCE getContent 给出编码的 URL

javascript - 在按钮标题中显示 URL

javascript - 控制台中的 Mapbox 生产错误。 "Uncaught ReferenceError: y is not defined"

css - 如何将 React Bootstrap 与 Gatsby 集成

typescript - 当用户登录(auth 不为 null )时,如何在 AngularFire2 中获取对象?

reactjs - 类型 'TableInstance{}' 上不存在 react 表分页属性

javascript - angular2 http.post() 到本地 json 文件

javascript - 每当 div 在 mootools 中增加或减少时如何调用函数

javascript - 在数组映射的最后一个元素上自动触发单击事件处理程序。 Reactjs