You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Typescript导入报错:module-b中未找到'remAuto'导出如何解决?

问题根因

触发警告的核心是ES模块导入导出语法不匹配,且Typescript严格遵循ES模块规范,没有做JS环境下的CommonJS隐式兼容:

  • 模块B使用export default导出了包含remAuto属性的对象,属于默认导出
  • 模块A使用命名导入语法import { remAuto } from 'module-b',只会匹配模块B显式声明的命名导出项,不会自动从默认导出的对象中检索属性

纯JS运行时没有报错是因为Webpack的CommonJS兼容逻辑会隐式把默认导出对象的属性合并到命名导出集合中,该行为不符合ES模块规范,所以Typescript默认会校验拦截。

解决方案

任选以下一种方案修改即可:

方案1:调整模块B的导出语法,新增命名导出

修改模块B的index.js文件,同时保留原有默认导出逻辑避免影响其他依赖:

// index.js
import { remAuto } from './src/utils';
// 新增命名导出
export { remAuto };
// 保留原有默认导出
export default {
  remAuto
};

方案2:调整模块A的导入语法,匹配默认导出规则

修改模块A的导入逻辑,先导入默认对象再解构取值:

// somefile.tsx
import moduleB from 'tidee-life-theme';
const { remAuto } = moduleB;
可选兼容配置

如果不想修改业务代码,也可以在tsconfig.json中开启以下兼容配置,适配旧的CommonJS导出逻辑:

{
  "compilerOptions": {
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true
  }
}

注:该配置仅做类型层面的兼容,实际运行时逻辑需要和Webpack的模块转换规则匹配,优先推荐修改导入导出语法的方案,兼容性更强。

内容的提问来源于stack exchange,提问作者JoeTidee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:54:00