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

Jest测试中fraction.js报TypeError: Fraction不是构造函数的解决方法

解决Jest测试中Fraction不是构造函数的问题

针对你在Jest测试里遇到的TypeError: Fraction is not a constructor错误,结合你的tsconfig配置,可尝试以下几种解决方式:

1. 改用命名导入

部分模块在Jest的模块解析逻辑下,默认导入可能无法正确识别构造函数,试试用命名导入替换默认导入:

import { Fraction } from "fraction.js";

export const multiply = (num1: number, num2: number) => {
    return new Fraction(num1).mul(num2).valueOf();
}

2. 同步Jest与TS的esModuleInterop配置

你的tsconfig已经开启了esModuleInterop,但Jest自身的配置也需要同步开启这个选项,才能正确处理ES模块的默认导入。在jest.config.js(或jest.config.ts)中添加:

module.exports = {
  // 保留你已有的其他配置,比如transform、testMatch等
  esModuleInterop: true,
  allowSyntheticDefaultImports: true
};

3. 确保类型依赖正确安装

如果未安装fraction.js的TypeScript类型定义包,可能导致导入解析异常,执行以下命令安装:

npm install @types/fraction.js --save-dev

4. 强制获取默认导出构造函数

如果上述方法都无效,可尝试手动提取模块的默认导出:

import * as FractionModule from "fraction.js";
const Fraction = FractionModule.default;

export const multiply = (num1: number, num2: number) => {
    return new Fraction(num1).mul(num2).valueOf();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 07:52:44