【问题标题】:Can I use third-party libraries with React and TypeScript?我可以在 React 和 TypeScript 中使用第三方库吗?
【发布时间】:2019-08-14 12:21:34
【问题描述】:
我正在尝试使用 React 设置一个新项目,并且正在考虑将 PropTypes 替换为 TypeScript。
但我想知道我是否会遇到集成问题。
例如:
- 在 TypeScript + React 中使用 Redux(或
react-redux)
- 集成未使用 TypeScript 创建的组件的问题
-
react-bootstrap 等库的问题
我主要关心的是从 TypeScript 导入非 TypeScript 代码。
有这方面的线索或经验吗?
【问题讨论】:
-
我们已经将 redux 和 react-bootstrap 与 react 和 typescript 一起使用,并且它们一起工作得非常好。对于 redux,我特别推荐这个:github.com/piotrwitek/typesafe-actions。使用用纯 JS 编写的 3rd 方组件对我们来说没有问题,特别是如果您有它们的类型定义(大多数都有),如以下关于 DefinitiveTyped 的答案之一所述。
标签:
reactjs
typescript
redux
react-bootstrap
【解决方案1】:
您可以在 Typescript 项目中导入 Javascript 库。不幸的是,我一直这样做。一些库具有社区类型的类型,您可以通过运行 npm i @types/mypackage --dev 来安装它们。
否则,您将不得不为包创建一个空的 TS 模块声明:
按照惯例,在您的 src 目录中的某处创建一个名为 mypackage.d.ts 的文件。 (我一般放在src/types/)
mypackage.d.ts 应包含declare module "mypackage";
现在,您从 mypackage 导入的任何内容都将具有 any 类型。
【解决方案2】:
你可以在 typescript 中使用 react redux,只需要安装 react-redux 类型:
npm install @types/react-redux
以及 react-bootstrap 的类型:
npm install @types/react-bootstrap
但FormControl 和Button 事件仍然存在一些问题!