开玩笑:类型错误:无法读取未定义的属性

IT技术 reactjs typescript unit-testing ecmascript-6 jestjs
2021-05-19 16:19:09

我试图测试我的 React 类,它有import dotnetify from "dotnetify";导入。这工作正常,但 Jest 说,dotnetify 是未定义的。如果我更改为const dotnetify = require("dotnetify");,Jest 通过测试,但这是愚蠢的解决方法。如何解释 Jest,那个 dotnetify 不是未定义的?

比你提前。

1个回答

这无法向 Jest“解释”,它确实是未定义的。

在 TypeScript 中有几种处理 CommonJS module的方法。正如这个答案中所解释的,只有在使用esModuleInterop( allowSyntheticDefaultImports) 编译器选项启用合成导入时,CommonJS 包中才会有默认导入

否则应该这样做:

import * as dotnetify from "dotnetify";

或者使用特定于 TypeScript 的语法:

import dotnetify = require("dotnetify")