【问题标题】:React has no exported member 'Props'React 没有导出的成员“道具”
【发布时间】:2017-03-14 01:24:16
【问题描述】:

我已经到处寻找解决此问题的方法,但没有任何运气。我试图弄清楚为什么会出现以下错误:

ERROR in ~/node_modules/@types/react-router/lib/applyRouterMiddleware.d.ts
(4,43): error TS2305: Module ‘”~/node_modules/react/react".export=' has no exported member 'Props'.

其中有数百个,与大多数引用未导出属性的 @types 定义文件有关。

我在这里使用 webpack 进行构建过程。这是 webpack.config.js

module.exports = {
  target: 'node',
  devtool: 'source-map',
  devServer: { historyApiFallback: true },
  context: root(),
  entry: './src/index.tsx',

  resolve: {
    extensions: [ '', '.js', '.ts', '.tsx', '.scss', '.css' ],
    root: root('src'),
    alias: {
      //inject environment variables via aliases
      conf: isProd() ? './conf/production.js' : './conf/development.js',
    },
  },

  output: {
    filename: 'bundle.js', //the output js file
    path: root('dist'), //build directory
    libraryTarget: 'umd',
  },

  externals: {
    fs: 'fs',
    winston: 'winston',
    system: '{}',
    file: '{}',
  },

  module: {
    loaders: [
      {
        test: /\.tsx?$/,
        loader: 'ts-loader',
      },
      {
        test: /\.(s)?css$/,
        loader: extractCSS.extract('css-loader!postcss-loader'),
      },
      {
        test: /\.json$/,
        loader: 'json-loader', //reference by npm module or path to loader file
      },
      {
        test: /\.jpe?g$|\.gif$|\.png$|\.svg$|\.woff$|\.eot$|\.ttf$/,
        loader: 'file-loader?name=assets/images/[sha512:hash:base64:7].[ext]',
        exclude: root('node_modules'),
      },
    ],
  },

  plugins: [
    extractCSS,
    new StaticHTMLPlugin(
      'bundle.js',
      root('src/Routing.tsx'),
      [ '.png', '.gif', '.jpg', '.jpeg', '.css', '.scss' ]
    ),
  ],
}

这是 package.json 的副本:

"dependencies": {},
"devDependencies": {
  "@types/history": "^2.0.39",
  "@types/node": "^6.0.46",
  "@types/react": "^0.14.44",
  "@types/react-dom": "^0.14.18",
  "@types/react-router": "^2.0.38",
  "@types/winston": "0.0.29",
  "css-loader": "^0.25.0",
  "extract-text-webpack-plugin": "^1.0.1",
  "file-loader": "^0.9.0",
  "fs": "0.0.1-security",
  "history": "^4.3.0",
  "json-loader": "^0.5.4",
  "postcss-assets": "^4.1.0",
  "postcss-assets-rebase": "^0.4.0",
  "postcss-cssnext": "^2.8.0",
  "postcss-inline-svg": "^2.1.2",
  "postcss-loader": "^0.13.0",
  "precss": "^1.4.0",
  "react": "^15.3.2",
  "react-dom": "^15.3.2",
  "react-router": "^3.0.0",
  "stylelint": "^7.4.0",
  "ts-loader": "^0.9",
  "tsc": "^1.20150623.0",
  "tslint": "^3.15",
  "tslint-config-standard": "^1.3.0",
  "tslint-eslint-rules": "^1.5.0",
  "tslint-loader": "^2.1.5",
  "tslint-react": "^1.0.0",
  "typescript": "^2.0.3",
  "typescript-react-router-static-html-webpack-plugin": "^0.1",
  "webpack": "^1.13.2",
  "webpack-dev-server": "^1.16.2",
  "winston": "^2.2.0"
}

对这里可能发生的事情有什么想法吗?我对 React 库本身不是很熟悉。我没有看到直接导出的属性,但我还没有深入研究库以查看它们是否以另一种方式导出。

如果 React 库和 @types/react 类型不一致,我会是唯一遇到此问题的人,这对我来说似乎很奇怪。这就是为什么我倾向于这是某种配置问题。

我也在tsc 上运行了该项目,它似乎实际上构建了正确的东西。虽然 b/c tsc 在控制台中输出了数千条垃圾行,但很难确定。

谢谢。

【问题讨论】:

    标签: reactjs typescript webpack react-router typescript-typings


    【解决方案1】:

    所以,这里的解决方案是将tsconfig.json prop,allowJs 设置为false

    "compilerOptions": {
      "allowJs": false
    }
    

    现在,我的问题是为什么?谁能解释一下?

    【讨论】:

      猜你喜欢
      • 2021-12-19
      • 2022-01-18
      • 2018-12-22
      • 2022-01-19
      • 2018-06-16
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多