解决ts开发时引入图片报错(“找不到xxx或其相应的类型声明”|解决ts开发时引入图片报错:“找不到xxx或其相应的类型声明” 的问题)
在使用ts开发时,引入图片报错
import img from '../../assets/images/foo.png';
找不到模块“../../assets/images/foo.png”或其相应的类型声明。因为typescript无法识别非代码资源。我们需要主动的去声明这个module
方法一:来源:参考链接
新建一个ts声明文件:images.d.ts
declare module '*.svg'
declare module '*.png'
declare module '*.jpg'
declare module '*.jpeg'
declare module '*.gif'
declare module '*.bmp'
declare module '*.tiff'
项目编译过程中会自动去读取.d.ts这种类型的文件,所以不需要我们手动加载。放置在tsconfig.json中include属性所配置的文件夹下即可。
方法二:
如果你的项目在创建时使用:
npx create-react-app my-app --template typescript
# or
yarn create react-app my-app --template typescript
那你的src目录下会有一个 react-app-env.d.ts 文件。内容如下:
///
该文件使用三斜线指令引入了react-scripts 的类型声明文件,在目标文件 react-app.d.ts 中声明了各类图片等资源的类型。
文件内容:
///
///
/// declare namespace NodeJS {
interface ProcessEnv {
readonly NODE_ENV: 'development' | 'production' | 'test';
readonly PUBLIC_URL: string;
}
}declare module '*.avif' {
const src: string;
export default src;
}declare module '*.bmp' {
const src: string;
export default src;
}declare module '*.gif' {
const src: string;
export default src;
}declare module '*.jpg' {
const src: string;
export default src;
}declare module '*.jpeg' {
const src: string;
export default src;
}declare module '*.png' {
const src: string;
export default src;
}declare module '*.webp' {
const src: string;
export default src;
}declare module '*.svg' {
import * as React from 'react';
export const ReactComponent: React.FunctionComponent & { title?: string }>;
const src: string;
export default src;
}declare module '*.module.css' {
const classes: { readonly [key: string]: string };
export default classes;
}declare module '*.module.scss' {
const classes: { readonly [key: string]: string };
export default classes;
}declare module '*.module.sass' {
const classes: { readonly [key: string]: string };
export default classes;
}
【解决ts开发时引入图片报错(“找不到xxx或其相应的类型声明”|解决ts开发时引入图片报错:“找不到xxx或其相应的类型声明” 的问题)】只要tsconfig.json中include包含了src目录,就可以正常引入。
推荐阅读
- 上海航芯 | 智能设备防盗版解决方案分享
- 解决IDEA的plugins安装插件很慢、不成功问题
- CRI容器运行时
- Blazor路由与页面导航开发介绍
- 别再写垃圾代码了(试试阿里巴巴 Java 开发插件,打造你的团队专属风格。。。)
- 时序数据库之InfluxDB的基本操作
- 还在胡乱设置连接保活时间()
- Chrome开发工具实用调试小技巧
- 【华为云会议开发指南】最佳实践
- 【华为云会议开发指南】开发流程