【分享】用typescript结合react编写代码,引入第三方库模块报错的解决办法
1.前提
我用 npx create-react-app my-react-ts-app --template typescript 创建了一个应用,加了typescript到项目中;
问题来了,我在文件引入'react-redux'包,却红线提示我:
无法找到模块“react-redux”的声明文件
try npm install @types/react-redux
或者 declare module 'react-redux'
import { Provider } from 'react-redux';

2.解决办法
(根据提示来解决,真是个小机智girl)
方式1: try npm install @types/react-redux ,库有自己的声明文件
NPM安装的格式: npm install @types/<package-name>
这样很好,因为我们只需要安装这个库,就可以立即使用它了。要知道一个库是否包含类型,看库中是否有 index.d.ts 文件。
有些库会在 package.json 文件的 typings 或 types 属性中指定类型文件。
需要注意的是:该库包含了自己的声明文件时只需要安装就好,如果没有再从 DefinitelyTyped 获取它的声明文件(也就是npm安装)
方式2: declare module 'react-redux' 自给自足
如果这个库没有自己的声明文件,那么就需要动手创建一个定义文件了
首先在根目录下创建文件夹‘typings’
再新建文件'react-redux.d.ts'
/typings/react-redux.d.ts
declare module 'react-redux'{
const content: any;
export = content;
}
然后在ts配置文件中加入'typings' 
大功告成,噢耶~
【分享】用typescript结合react编写代码,引入第三方库模块报错的解决办法的更多相关文章
- vue2y引入iview,在ie11报错的解决办法
在ie11中打开vue项目一片空白,F12打开控制台发现如下错误 只需要在build/webpack.base.conf.js中加一行代码即可
- react项目中引入百度地图打包报错问题
一.我正常引入百度地图,调试时候是好使的,但是打包时候就报错 引入方法如下: 报错如图 正常调试是好使的,但是打包报这个错,解析不了这个BMap,那么怎么办呢? 然后我就转用了window办法,虽然因 ...
- net::ERR_ABORTED ,引入js文件出现报错的解决方法
在head头里面添加 <mvc:annotation-driven enable-matrix-variables="true"></mvc:annotation ...
- 【学而思】利用shouldComponentUpdate钩子函数优化react性能以及引入immutable库的必要性
凡是参阅过react官方英文文档的童鞋大体上都能知道对于一个组件来说,其state的改变(调用this.setState()方法)以及从父组件接受的props发生变化时,会导致组件重渲染,正所谓&qu ...
- 【react】利用shouldComponentUpdate钩子函数优化react性能以及引入immutable库的必要性
凡是参阅过react官方英文文档的童鞋大体上都能知道对于一个组件来说,其state的改变(调用this.setState()方法)以及从父组件接受的props发生变化时,会导致组件重渲染,正所谓&qu ...
- TypeScript 引入第三方包,报无法找到模块错误
以 react-router-dom 模块为例 1. npm加上 @types/ 根据报错提示尝试安装该库的TypeScript版本 (该库的 ts 声明文件),也就是在该库的名称前加上 @types ...
- Swift项目引入第三方库的方法
以下,将创建一个Swift项目,然后引入3个库: Snappy 简化autolayout代码的库 Alamofire HTTP网络库,AFNetworking作者写的 SDWebImage 图片加载, ...
- 【初识TypeScript】 配置环境后运行Hello World编译报错.
第一次接触TypeScript,配置好环境后, 发现连编写个最基本的Hello World都报错,代码如下: const hello:string = "Hello World!" ...
- cmake引入第三方库的debug和release版本之Windows版本
概述 本文将介绍cmak引入第三方库debug和release不同配置. Windows上,习惯将debug模式下生成的动态库名后缀添加D 以作和release区分.cmake创建一个项目A,A引入动 ...
- python中引入包的时候报错AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法?
python中引入包的时候报错:import unittestimport smtplibimport timeimport osimport sysimp.reload(sys)sys.setdef ...
随机推荐
- 首次尝试SeaTunnel同步Doris至Hive?这些坑你不能不避
笔者使用SeaTunnel 2.3.2版本将Doris数据同步到Hive(cdh-6.3.2)首次运行时有如下报错,并附上报错的解决方案: java.lang.NoClassDefFoundError ...
- Python 潮流周刊#64:Python 的函数调用还很慢么?(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- Android 存储概览
存储区 Android 一开始就将存储区分为内部存储和外部存储,对应手机自带的存储和可插拔的 sd 卡(可类比于 PC 的硬盘和 U盘). 内部存储容量有限,Google 建议 App 数据尽量存储 ...
- Ubuntu 写入磁盘映像
使用 dd 命令 dd 命令是 Unix 和 Unix-like 操作系统中用于低级别数据复制和转换的命令.它可以直接操作设备文件(如硬盘.光盘.USB 驱动器等),适用于备份.恢复.制作启动盘等任务 ...
- el-popover - 问题
背景:elemet - ui和vue , el-table中使用了 el-popover , el-popover 中使用了form, 每编辑一行数据,点击编辑按钮,出现el-popover弹窗,页面 ...
- JMonkeyEngine3 Android 旋转 、放大、缩小一个方块 demo 版本3.5.2-stable
1. Class,里面是旋转的逻辑,很简陋,可以自己优化 import android.util.Log; import com.jme3.app.SimpleApplication; import ...
- ipv6 知识
ref: 网络编程懒人入门(十一):一文读懂什么是IPv6 https://cloud.tencent.com/developer/article/1551346 IT知识大全:IPv6详解
- EF Core – ExecuteUpdate and ExecuteDelete (Bulk updates 批量更新和删除)
前言 EF Core 在 SaveChanges 之后会一句一句的去更新和删除数据. 有时候这个效率是很差的. 而 SQL 本来就支持批量更新和删除, 所以是 EF Core 的缺失. 在 EF Co ...
- Angular 学习笔记 (Typescript 高级篇)
由于 typescript 越来越复杂. 所以特意开多一个篇幅来记入一些比较难的, 和一些到了一定程度需要知道的基础. 主要参考 https://basarat.gitbook.io/typescri ...
- 【VMware VCF】使用 VCF Import Tool 将现有 vSphere 环境转换为管理域。
VMware Cloud Foundation 5.2 发布并引入了一个新的功能,借助 VCF Import Tool 工具可以将现有 vSphere 环境直接转换(Convert)为管理工作负载域或 ...