【问题标题】:Duplicate Types error when using react, reactdom and react-redux types together一起使用 react、reactdom 和 react-redux 类型时出现重复类型错误
【发布时间】:2018-02-25 09:30:31
【问题描述】:

所以我正在尝试将 react-redux 与 typescript 一起使用。这就是我的 package.json 的样子

"dependencies": {
        "@types/react-dom": "15.5.0",
        "@types/react": "15.0.4",
        "@types/react-redux": "4.4.39",
        "axios": "0.16.2",
        "react": "15.0.0",
        "react-dom": "15.0.0",
        "redux": "3.6.0",
        "react-redux": "5.0.6",
        "redux-thunk": "2.1.0",
        "office-ui-fabric-react": "1.0.0"
    }

现在当我进行 yarn install 时。我看到安装了多种反应类型。一次用于@types/React。一个用于 @types/React-redux@types/react-dom 在其自己的每个 node_modules 文件夹中。正如我在 yarn.lock 文件中看到的那样,这些模块在内部安装的类型的版本非常不同。

当我尝试编译它时,我收到类似
error TS2304: Cannot find name 'DetailedHTMLFactory' 之类的错误。
后续变量声明必须具有相同的类型

如果我复制所有嵌套的@types 并只保留顶级@types/react,错误就会消失。 有什么更好的方法来做到这一点,这样就不会出现重复类型问题?

【问题讨论】:

    标签: reactjs typescript react-redux tsc react-dom


    【解决方案1】:

    由于您使用的是yarn,最简单的方向可能是在package.json 文件中使用resolutions 来强制特定版本的分型,请参阅https://github.com/yarnpkg/yarn/pull/4105

    除此之外,您还必须弄清楚这些类型的哪些特定版本可以相互配合。基本上看@types/react-dom依赖列表,然后在你的项目中包含相同版本的@types/react

    【讨论】:

      【解决方案2】:

      您应该尝试删除您的node_modules 文件夹,运行yarn cache clear 并重新安装所有内容。 typescript repo 上有一个关于这种行为的问题(我最近在我的一个附带项目中遇到了它),我将尝试找到并链接到这个答案。

      【讨论】:

        【解决方案3】:

        所以我最终通过排除 node_modules 文件夹来解决这个问题。

        将“node_modules”放在 tsconfig.json 的“exclude”部分。

        【讨论】:

          猜你喜欢
          • 2016-08-28
          • 2022-06-21
          • 1970-01-01
          • 2018-09-04
          • 1970-01-01
          • 2016-10-09
          • 2017-06-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多