使用react-multi-select-component报TS2604类型错误求助
错误原因
react-multi-select-component v4及以上版本采用命名导出而非默认导出,本地开发环境的TypeScript校验规则相对宽松,同时可能存在模块兼容垫片,因此不会触发报错;而Docker/Jenkins构建环境启用了严格的类型检查,会识别到导入方式不匹配的问题,抛出对应错误。
解决方案
- 修改组件导入语句,将原默认导入替换为命名导入:
// 原有错误写法 // import MultiSelect from 'react-multi-select-component'; // 修改后正确写法 import { MultiSelect } from 'react-multi-select-component';
- 若使用的是v3及更早版本的组件,可使用全量导入兼容写法兜底:
import * as MultiSelect from 'react-multi-select-component';
- 确认本地与构建环境的依赖版本一致,提交锁文件(
package-lock.json/yarn.lock/pnpm-lock.yaml)到代码仓库,避免依赖版本差异导致的导出规则不一致。
修改完成后重新执行构建即可解决该报错。
内容的提问来源于stack exchange,提问作者BluePilot
相关产品推荐
相关产品推荐

