Typescript项目中import图片时报错:Cannot find module '.../*.png'. TS2307
问题
- 在
React+Typescript
项目中导入图片时,报错:
解决方案
- 在
js
中引入本地静态资源图片时,使用import lockIcon from '@assets/imgs/lock.gif
这种写法是没有问题的; - 但在
Typscript
中是无法识别非代码资源的,所以会报错TS2307: cannot find module '.gif'
; - 因此我们需要声明一个
module
:- 新建一个
ts
声明文件,如:images.d.ts
,这样ts
就可以识别svg
、png
、jpg
等图片类型文件; - 项目编译过程中会自动去读取
.d.ts
这种类型的文件,所以不需要我们手动地加载他们; - 当然
.d.ts
文件也不能随便在项目中放置,这类文件和ts
文件一样需要被Typescript
编译,所以只能放置在tsconfig.json
中include
属性所配置的文件夹下,如:src
目录下; images.d.ts
内容如下:declare module '*.svg' declare module '*.png' declare module '*.jpg' declare module '*.jpeg' declare module '*.gif' declare module '*.bmp' declare module '*.tiff'
- 新建一个
转载自:https://juejin.cn/post/7016980878928642061