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

从Mocha测试导入类时出现TypeError: ... is not a constructor错误

解决 "TypeError: TaxCalculation is not a constructor" 问题

这个错误通常是模块导出与导入方式不匹配导致的,以下是几种可行的解决方法:

方法1:适配ES模块配置

查看项目根目录的package.json,如果存在"type": "module"配置项,说明项目默认将.js文件视为ES模块。此时用require()导入时,需要通过.default属性获取类:

const TaxCalculation = require("../app/taxCalculator").default;

方法2:统一使用CommonJS模块

如果不需要ES模块特性,删除package.json中的"type": "module"配置。此时所有.js文件会被当作CommonJS模块处理,你原本的导入代码即可正常运行:

const TaxCalculation = require("../app/taxCalculator");

方法3:全量切换到ES模块语法

若想统一使用ES模块规范,修改两个文件的代码:

  1. 在app/taxCalculator.js中替换导出语句:
    export default TaxCalculation;
    
  2. 在test/taxCalculator.js中替换导入语句:
    import TaxCalculation from "../app/taxCalculator.js";
    import { expect } from "chai";
    

确保package.json保留"type": "module",且使用的Mocha版本支持ES模块(较新版本Mocha已原生支持)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 14:17:30