我正在尝试测试我的具有import dotnetify from "dotnetify";导入的React类。效果很好,但杰斯特(Jest)说,dotnetify是未定义的。如果我更改为const dotnetify = require("dotnetify");,Jest将通过测试,但这是愚蠢的解决方法。如何解释Jest,dotnetify不是未定义的?
比你提前。

最佳答案

Jest不能对此“解释”,这实际上是未定义的。
有几种方法可以处理TypeScript中的CommonJS模块。如this answer中所述,仅当使用esModuleInterop(allowSyntheticDefaultImports)编译器选项启用了合成导入时,CommonJS packge中才会有默认导入。
否则,应按照以下步骤进行:

import * as dotnetify from "dotnetify";
或使用特定于TypeScript的语法:
import dotnetify = require("dotnetify")

10-02 17:40