React - 后续变量声明必须具有相同的类型

时间:2017-08-17 13:13:59

标签: reactjs typescript webpack

当我尝试在我的React应用程序中运行webpack时,我得到了 enter image description here

对于不同的变量,我得到这个错误58次。 我尝试删除@types目录,我收到以下错误: enter image description here

如果不将@ types / react反馈回项目,如何解决这个问题,因为那之前导致了58个错误?

我也尝试将所有'SVGProps'更改为@ types / react / index.d.ts内的另一个名称'SVGPropss'并且没有运气

3 个答案:

答案 0 :(得分:6)

一种可能性是你有其他依赖关系依赖于旧版@types/react或yarn / npm已经决定他们应该使用旧版本。

例如:@types/react-dom取决于@types/react。当我遇到此问题时,我只是手动更改了@types/react的版本号并重新运行yarn install。 Yarn愉快地将​​@types/react的新版本安装到我的node_modules/@types/目录中,但它还将我 使用的版本安装到依赖于@types/react的所有其他模块上。所以我最终得到了像

这样的目录树
node_modules
+-- @types
|   +-- react // 16.0.2
|   +-- react-dom
|   |   |   +-- node_modules
|   |   |   +-- @types
|   |   |   |   +-- react // 15.0.35

您可以快速扫描./node_modules/@types/目录,看看他们自己是否有node_modules/@types/react的子目录。如果是这样,这可能是你复制居住地的地方。

我解决这个问题的方法是运行

> yarn outdated
> yarn upgrade

outdated | upgrade

> npm outdated
> npm upgrade

outdated | upgrade

如果您实际上不希望升级outdated输出的所有模块,则只能将要更新的模块作为upgrade的参数进行更新。 我怀疑你可以简单地运行

yarn upgrade @types/react

并完全解决问题,但我没有测试过。

答案 1 :(得分:3)

您可以使用 Main> shift 3 [] 5 [] Main> shift 0 [1,2,3,4] 4 [1,2,3,4] Main> shift 3 [1,2,3,4,3,2,1] 3 [1,2,4,3,2,3,1] Main> shift 6 [1,2,3,4,5,6,7,8] 7 [1,2,3,4,5,7,8,6] Main> shift 'k' "skin" 0 "sin" Main> shift '.' "factor.bit." (-2) "fact.orbit." Main> shift '.' "0000.1111.00" (-10) ".00001111.00" Main> shift "one" ["one", "two", "three"] (-2) ["one","two","three"] Main> shift "one" ["one", "two", "three"] 1 ["two","one","three"] Main> shift "three" ["one", "two", "three"] 5 ["one","two","three"] 查看所有版本的react / react-dom和@ types / react / @ types / react-dom。

对我来说,它看起来像:

yarn list --pattern "react"

您可以使用yarn的resolutions功能来解析同一版本的特定依赖关系。将以下内容添加到package.json:

yarn list v1.3.2 ├─ @jupyterlab/apputils@0.15.5 │ ├─ @types/react@16.0.41 │ ├─ react-dom@16.0.0 │ └─ react@16.0.0 ├─ @jupyterlab/cells@0.15.4 │ └─ react@16.0.0 ├─ @types/react-dom@16.0.3 │ └─ @types/react@16.3.5 ├─ @types/react@16.0.34 ├─ mdi-react@2.1.19 ├─ react-chart-editor@0.11.1 ├─ react-color@2.14.0 ├─ react-colorscales@0.4.3 ├─ react-dom@16.2.0 ├─ react-input-autosize@2.2.1 ├─ react-plotly.js@1.7.0 ├─ react-rangeslider@2.2.0 ├─ react-select@1.2.1 ├─ react-tabs@2.2.1 ├─ react@16.2.0 └─ reactcss@1.2.3

这解决了“后续变量声明必须具有相同类型 “对我来说错误。

答案 2 :(得分:0)

  

如果不将@ types / react反馈回项目,如何解决这个问题,因为那之前导致了58个错误?

而不是删除@types/react删除导致冲突的其他定义。

更多

重复文件很可能会被称为react.d.tsreact/index.d.ts