类型错误:sha256_1.default 不是函数

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});\n
Run 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\n
Run Code Online (Sandbox Code Playgroud)\n\n

我正在为我的项目使用react-typescript。任何帮助表示赞赏。

\n\n

谢谢!!

\n

Al *_*had 7

这个语法对我有用

import * as sha256 from 'crypto-js/sha256';
Run Code Online (Sandbox Code Playgroud)


Mat*_*hen 2

我假设该crypto-js/sha256模块通过 CommonJS 样式的导出分配 ( module.exports = sha256) 导出 sha256 函数。要导入它,您需要使用 TypeScript 的特殊导入赋值语法:

import sha256 = require("crypto-js/sha256");
Run Code Online (Sandbox Code Playgroud)

或者启用esModuleInterop提供默认导入和导出分配之间的互操作性的编译器选项。