2017-04-20 81 views
3

一起使用TypeScript和React的正确方法是什么,既然他们已经在15.5版的单独项目中提取了PropTypes?如何在TypeScript中使用React 15.5?

从15.4升级到15.5之后,一切都运行正常,除了现在我在控制台中得到这个警告:"Warning: Accessing PropTypes via the main React package is deprecated. Use the prop-types package from npm instead."如何让它消失?

我已经尝试执行以下步骤,但它不会删除控制台警告。

  • 添加prop-types@types/prop-types包。
  • 导入PropTypes无处不在,我导入React,import * as PropTypes from "proptypes"。还试用了require("prop-types")
  • 关闭noUnusedLocals,以避免编译器抱怨PropTypes未被使用。

。由于我使用的是TypeScript,编译器在编译时正在验证PropTypes,所以我不需要在运行时也这样做,因此我不应该得到警告,对吧?我希望我可以在构建配置的某个地方添加或更改一个设置,这会使React编译时不使用PropTypes。

+0

你能添加一个最小化的设置/例子来显示警告吗? –

+0

@SebastianSebald:我现在所拥有的全部存储库是:https://github.com/janaagaard75/film-filter/tree/master/website。 : -/ –

+0

我没有Firebase帐户,所以我无法运行你的应用。但是由于在你的代码中绝对没有'PropTypes'的使用,我猜你的一个依赖(也许是'mobx'?)仍然使用它们,这就是为什么你会得到这个警告。 –

回答

3

我有同样的问题,因为我是作为进口阵营:我的项目中警告消失

import React from 'react' 

无处不在:

import * as React from 'react' 

后,我把它改成。

不需要prop-types包。

P.S.我使用babel并在tsconfig.json中有"allowSyntheticDefaultImports": true

+0

嗯,你怎么能''在'TypeScript'中从'react''导入React?这是唯一有效的使用巴贝尔transpiler .. – apieceofbart

+1

@apieceofbart是的,我更新了答案。 – mixel

+0

非常感谢,不知道! – apieceofbart

相关问题