【问题标题】:How do I use React 15.5 with TypeScript?如何将 React 15.5 与 TypeScript 一起使用?
【发布时间】:2017-07-06 21:01:21
【问题描述】:

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

从 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 包。
  • 在我导入 React 的任何地方导入 PropTypes,import * as PropTypes from "proptypes"。还尝试使用require("prop-types")。
  • 关闭noUnusedLocals,以避免编译器抱怨 PropTypes 没有被使用。

但是。由于我使用的是 TypeScript,编译器会在编译时验证 PropTypes,所以我不需要在运行时做同样的事情,因此我根本不应该收到警告,对吧?我希望也许我可以在构建配置中的某处添加或更改设置,这将使 React 在没有 PropTypes 的情况下编译。

【问题讨论】:

  • 您能否添加一个显示警告的最小设置/示例?
  • @SebastianSebald:我现在只有完整的存储库:github.com/janaagaard75/film-filter/tree/master/website。 :-/
  • 我没有 Firebase 帐户,因此无法运行您的应用。但是由于您的代码中绝对没有使用PropTypes,我猜您的依赖项之一(可能是mobx?)仍然使用它们,这就是您收到该警告的原因。
  • 我使用了一组非常相似的依赖项(ts/webpack/react/mobx/mobx-react),我根本不使用 prop-types,并且在 react 15.5 上我没有得到运行时的任何此类警告。设置具有相同核心依赖集的项目可能是谨慎的,但不依赖于诸如 firebase 之类的东西来帮助确定您的问题所在
  • @Alex:非常感谢您提供的信息!至少现在我知道可以让我的设置按预期工作。您有项目的链接吗?

标签: reactjs typescript react-proptypes


【解决方案1】:

我遇到了同样的问题,因为我将 React 导入为:

import * as React from 'react'

我改成之后:

 import React from 'react'

在我的项目中,警告消失了。

不需要prop-types 包。

附:我使用 babel 并在 tsconfig.json 中有 "allowSyntheticDefaultImports": true。

【讨论】:

  • hmm 你怎么能在 TypeScript 中import React from 'react'?这仅在使用 babel 转译器时有效..
  • @apieceofbart 如果我的回答有帮助,请不要害羞点赞 ;)
【解决方案2】:

想通了:是mobx-react-devtools 导致了警告。该问题已报告并修复,但显然尚未发布。

https://github.com/mobxjs/mobx-react-devtools/issues/59

【讨论】:

  • 谢谢。我也在使用 mobx-react-devtools。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-11
  • 2019-07-30
  • 1970-01-01
  • 2021-12-27
  • 2017-01-17
  • 2019-07-31
  • 1970-01-01
相关资源
最近更新 更多