2017-09-16 49 views
0

所以我试图使用react-redux与typescript。这是我的package.json看起来像当使用react,reactdom和react-redux类型时,重复类型错误

"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" 
    } 

现在,当我做纱安装。我看到安装了多个反应类型。一次为@ types/React。一个用于@ types/React-redux@ types/react-dom每个自己的node_modules文件夹中。这些模块在内部安装的类型的版本与我在yarn.lock文件中看到的版本非常不同。

当我尝试编译此错误时,出现如下错误:
错误TS2304:找不到名称'DetailedHTMLFactory'。
随后的变量声明必须具有相同的类型

,如果我复制所有嵌套@types,只是保持TEH顶级@类型/反应的错误会消失。 什么是更好的方式来做到这一点,以便重复的类型问题不会出现?

回答

0

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

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

1

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

以外,你必须弄清楚哪些特定版本这些类型的工作与另一个。基本上查看@types/react-dom依赖列表,然后在您的项目中包含相同版本的@types/react

0

您应该尝试删除您的node_modules文件夹,运行yarn cache clear并重新安装所有内容。关于这种行为的打字稿回购有一个问题(我最近遇到了其中一个副项目),我会尝试查找并链接到此答案。

+0

不,这不起作用 – Abhik