TypeScript报错:typeof import("*.svg")无法赋值给string类型求助
解决SVG导入类型不匹配报错问题
你的报错根源是当前的global.d.ts只声明了SVG模块导出ReactComponent,但代码中是默认导入SVG并当作字符串类型(img的src要求字符串)使用,TypeScript无法识别这个默认导出的类型,因此抛出类型不匹配错误。
以下是两种针对性的解决方案:
方案一:仅支持SVG作为图片路径导入
修改global.d.ts内容,声明默认导出为字符串类型:
declare module "*.svg" { const value: string; export default value; }
方案二:同时支持组件形式和图片路径导入
如果需要在项目中同时使用SVG组件(如<MySvg />)和图片路径两种方式,可修改global.d.ts为:
declare module "*.svg" { import type React from 'react'; // 声明SVG组件类型 const ReactComponent: React.FC<React.SVGProps<SVGSVGElement>>; // 声明图片路径字符串类型 const src: string; export { ReactComponent, src }; // 默认导出图片路径,适配你当前的代码写法 export default src; }
修改后重启TypeScript服务(或重启编辑器),即可解决类型不匹配的报错。
内容的提问来源于stack exchange,提问作者user20002028
相关产品推荐
相关产品推荐

