在应用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# oryarn create react-app my-app --template typescript

那你的src目录下会有一个 react-app-env.d.ts 文件。内容如下:

/// <reference types="react-scripts" />

该文件应用三斜线指令引入了react-scripts 的类型申明文件,在指标文件 react-app.d.ts 中申明了各类图片等资源的类型。
文件内容:

/// <reference types="node" />/// <reference types="react" />/// <reference types="react-dom" />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<React.SVGProps<    SVGSVGElement  > & { 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;}

只有tsconfig.json中include蕴含了src目录,就能够失常引入。