2017-09-16 81 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