导入现有.jsx文件提示找不到模块声明文件的合理解决方案咨询
解决方案
方案1:开启JS文件兼容配置(推荐)
在tsconfig.json的compilerOptions字段中新增两项配置:
"allowJs": true:允许TypeScript直接识别、兼容.js/.jsx格式文件,不会对这类文件抛出缺失声明的7016报错"jsx": "react-jsx"(React项目可选):适配JSX语法的解析规则
该方案无需修改任何原有业务文件,也不会改动全局类型校验规则,适配迁移过渡场景的需求。
方案2:添加通配符模块声明
如果你暂时不想开启allowJs,可以在项目根目录新增任意.d.ts后缀的声明文件(需确保该文件路径在tsconfig.json的include数组覆盖范围内),写入以下内容:
// 匹配所有.jsx后缀的导入 declare module '*.jsx' { const value: any; export default value; } // 如有.js文件导入报错也可新增对应声明 declare module '*.js' { const value: any; export default value; }
该方案只会将.js/.jsx模块的导入类型设置为any,完全不影响其他TS代码的noImplicitAny校验规则,影响范围可控。
方案3:单行忽略校验
如果仅有少量导入报错,可以在报错的导入语句上方单独加注释// @ts-ignore,仅忽略当前行的类型校验,影响范围最小。
内容的提问来源于stack exchange,提问作者JimmyTheCode
相关产品推荐
相关产品推荐

