我试图测试我的 React 类,它有import dotnetify from "dotnetify";
导入。这工作正常,但 Jest 说,dotnetify 是未定义的。如果我更改为const dotnetify = require("dotnetify");
,Jest 通过测试,但这是愚蠢的解决方法。如何解释 Jest,那个 dotnetify 不是未定义的?
比你提前。
我试图测试我的 React 类,它有import dotnetify from "dotnetify";
导入。这工作正常,但 Jest 说,dotnetify 是未定义的。如果我更改为const dotnetify = require("dotnetify");
,Jest 通过测试,但这是愚蠢的解决方法。如何解释 Jest,那个 dotnetify 不是未定义的?
比你提前。
这无法向 Jest“解释”,它确实是未定义的。
在 TypeScript 中有几种处理 CommonJS module的方法。正如这个答案中所解释的,只有在使用esModuleInterop
( allowSyntheticDefaultImports
) 编译器选项启用合成导入时,CommonJS 包中才会有默认导入。
否则应该这样做:
import * as dotnetify from "dotnetify";
或者使用特定于 TypeScript 的语法:
import dotnetify = require("dotnetify")