类型错误:sha256_1.default 不是函数
Posted
技术标签:
【中文标题】类型错误:sha256_1.default 不是函数【英文标题】:TypeError: sha256_1.default is not a function 【发布时间】:2019-03-08 03:50:14 【问题描述】:我在使用 jest 进行测试时遇到错误。我在这里使用非 es6 npm 包。当我不想执行任何通配符 * 导入时,就会出现此问题。我想做显式导入。
//code
import sha256 from "crypto-js/sha256";
export const GetHashToken = (value) =>
return sha256(value);
;
//test
import GetHashToken, GetUtcTimeStamp from
"../../utils/ScheduleRepairUtility";
describe("Get hash token utility", () =>
it("Should return sha-256 hex digit string for given value", () =>
const paramValue = "78436783465sears121212";
expect(GetHashToken(paramValue))
.toBe("b87663752c7f5bf0967f74fd3523dece543
f447e96d9b1d478c7336781e1828b");
);
);
得到错误:
● Get hash token utility › Should return sha-256 hex digit string for
given value
TypeError: sha256_1.default is not a function
我正在为我的项目使用 react-typescript。任何帮助表示赞赏。
谢谢!!
【问题讨论】:
仅供参考:当我执行以下操作时一切正常: import * as sha256 from "crypto-js" 【参考方案1】:这个语法对我有用
import * as sha256 from 'crypto-js/sha256';
【讨论】:
【参考方案2】:我假设 crypto-js/sha256
模块通过 CommonJS 样式的导出分配 (module.exports = sha256
) 导出 sha256 函数。要导入它,您要么需要使用 TypeScript 的特殊导入赋值语法:
import sha256 = require("crypto-js/sha256");
或启用esModuleInterop
编译器选项,该选项提供默认导入和导出分配之间的互操作性。
【讨论】:
谢谢马特。我使用 @types/node 中的 createHash 而不是 crypto-js/sha256 让它工作。以上是关于类型错误:sha256_1.default 不是函数的主要内容,如果未能解决你的问题,请参考以下文章
OpenSSL 1.1.1 PSK TLS1.3 - TLS_256_GCM_SHA384 密码套件没有合适的签名算法错误
“sha256_password 或caching_sha2_password 需要加密”