【分享】用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 ...
随机推荐
- 这应该是全网最全的CSP-S初赛复习吧
点我到洛谷看 \(Update\ 2024/8/2:\) 加入了在数据结构中增加了"树",做出部分更改. linux基础命令 cd 切换目录 ls 列出目前工作目录所含的文件及子目 ...
- LVGL btn组件
/************************************************* * * file name:widget_line.c * author :momolyl@126 ...
- GPL前世今生
从事Linux开发的朋友一定都听过GPL,那么到底什么是GPL呢?他有什么作用呢?本文给大家做详细讲解. 一.GNU/GPL 在讲解GPL之前,我们必须先了解什么是GNU? 1. 什么是GNU GNU ...
- C#二叉搜索树算法
二叉搜索树算法实现原理 二叉搜索树(Binary Search Tree,简称BST)是一种节点有序排列的二叉树数据结构.它具有以下性质: 每个节点最多有两个子节点. 对于每个节点,其左子树的所有节点 ...
- [学习笔记]在不同项目中切换Node.js版本
@ 目录 使用 Node Version Manager (NVM) 安装 NVM 使用 NVM 安装和切换 Node.js 版本 为项目指定 Node.js 版本 使用环境变量指定 Node.js ...
- Ubuntu 添加虚拟内存文件
添加交换文件 准备工作 查看当前系统中启用的交换空间(swap space)的详细信息: sudo swapon --show 查看系统的内存和总交换空间的使用情况: free -h 为了有足够的空间 ...
- 安装 Google Cloud CLI(gcloud)
安装 Ubuntu # 更新软件包索引 sudo apt update # 安装辅助工具 sudo apt install apt-transport-https ca-certificates gn ...
- MySQL服务端innodb_buffer_pool_size配置参数
innodb_buffer_pool_size是什么? innodb_buffer_pool是 InnoDB 缓冲池,是一个内存区域保存缓存的 InnoDB 数据为表.索引和其他辅助缓冲区.innod ...
- 【VMware VCF】VCF 5.2:配置管理域 vSAN 延伸集群。
VMware vSAN 解决方案中,根据集群的配置类型分为 vSAN 标准集群.vSAN 延伸集群以及双主机集群(延伸集群特例).我们最常见的使用方式应该是 vSAN 标准集群,也就是 vSAN HC ...
- mysql 死锁原因及解决办法
Mysql 锁类型 一.锁类型介绍: MySQL 有三种锁的级别:页级.表级.行级. 表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出 ...