Kou*_*408 5 typescript ecmascript-6 reactjs webpack jestjs
我在使用 jest 进行测试时遇到以下错误。我在这里使用非 es6 npm 包。当我不想进行任何通配符 * 导入时,就会出现此问题。我想做显式导入。
\n\n//code\n\nimport sha256 from "crypto-js/sha256";\n\nexport const GetHashToken = (value) => {\n return sha256(value);\n};\n\n//test\n\nimport { GetHashToken, GetUtcTimeStamp } from \n"../../utils/ScheduleRepairUtility";\n\ndescribe("Get hash token utility", () => {\n it("Should return sha-256 hex digit string for given value", () => {\n const paramValue = "78436783465sears121212"; \n expect(GetHashToken(paramValue))\n .toBe("b87663752c7f5bf0967f74fd3523dece543\n f447e96d9b1d478c7336781e1828b");\n });\n});\nRun Code Online (Sandbox Code Playgroud)\n\n出现错误:
\n\n\xe2\x97\x8f Get hash token utility \xe2\x80\xba Should return sha-256 hex digit string for \n given value\n\nTypeError: sha256_1.default is not a function\nRun Code Online (Sandbox Code Playgroud)\n\n我正在为我的项目使用react-typescript。任何帮助表示赞赏。
\n\n谢谢!!
\n我假设该crypto-js/sha256模块通过 CommonJS 样式的导出分配 ( module.exports = sha256) 导出 sha256 函数。要导入它,您需要使用 TypeScript 的特殊导入赋值语法:
import sha256 = require("crypto-js/sha256");
Run Code Online (Sandbox Code Playgroud)
或者启用esModuleInterop提供默认导入和导出分配之间的互操作性的编译器选项。