reactjs - React,Typescript - 找不到模块...或其相应的类型声明
问题描述
我在 vs 代码中使用 create-react-app 和 yarn 2 创建了一个新项目。编辑器在导入每个已安装的库时会抛出错误,如下所示:
找不到模块“反应”或其相应的类型声明。
该项目编译并成功运行,但错误仍然存在。当我将文件的扩展名更改为.js和.jsx时。ts和.tsx,错误消失。我应该如何解决打字稿文件的这个问题?
解决方案
您需要为您安装的库安装类型。通常你应该这样做:
npm install @types/libName // e.g. npm install @types/react-leaflet
有时, DefiniteTyped存储库中没有可用的类型,您会遇到npm ERR! 404 Not Found: @types/my-untyped-module@latest
. 在这种情况下,您可以做几件事:
1-decs.d.ts
在项目的根目录中创建一个文件并在其中写入:
declare module "libName" // e.g declare module 'react-leaflet'
2-或简单地使用以下方法抑制错误@ts-ignore
:
// @ts-ignore
import Map from 'react-leaflet'
3-或者你可以帮自己和其他人一个忙,在DefiniteTyped repo 中添加库类型。
如果还是不行,我首先建议你使用最新版本的 Typescript。如果你这样做了,那么关闭你的编辑器,删除node_modules
文件夹并再次安装依赖项(npm install
或yarn install
)并再次检查它。
推荐阅读
- react-native - TabNavigator 中的 StackNavigator 是否可能?
- android - 禁用 ViewPager 滑动
- go - 切片切片参考
- python - Python 3:如何更改 GDAL 中的图像数据?
- docker - Docker 构建失败,找不到命令
- c++ - 在成员构造函数之后调用基类构造函数
- tensorflow - Tensorflow:将矩阵列乘以向量的元素并返回矩阵
- xamarin - 如何在 Xamarin Android 应用程序中添加对 Amazon Fire TV 远程控制硬件的支持?
- html - 如果输入字段为空,则隐藏数据列表选项
- android - 处理用户输入和网络的反应式流模式