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

无法配置Enzyme适配器:TypeScript报错问题求助

解决Enzyme适配器TypeScript构造签名错误的问题

这个问题确实和包的导出规范变化有关——你参考的2年前的指南对应的enzyme-adapter-react-16版本,当时可能还支持命名空间式导入,但现在的版本已经改用默认导出了,这才导致TypeScript抛出构造签名相关的错误。

为什么会报错?

你用的import * as Adapter from 'enzyme-adapter-react-16'是命名空间导入,这种方式会把整个模块的导出内容包裹成一个对象,而不是直接拿到适配器的构造函数。TypeScript检测到这个对象不具备new操作所需的构造签名,所以触发了Cannot use 'new' with an expression whose type lacks a call or construct signature的错误。

正确的配置写法

直接改用默认导入就能解决问题,这也是当前Enzyme官方推荐的写法:

import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';

Enzyme.configure({ adapter: new Adapter() });

如果你更习惯CommonJS风格的导入,也可以使用require:

const Enzyme = require('enzyme');
const Adapter = require('enzyme-adapter-react-16');

Enzyme.configure({ adapter: new Adapter() });

额外注意事项

确保你的类型定义包和实际依赖版本匹配:

  • 如果安装了@types/enzyme和@types/enzyme-adapter-react-16,要保证它们的版本和enzyme、enzyme-adapter-react-16的主版本一致,避免出现类型不兼容的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:50:12