无法使用typescript将选项对象添加到SHA3函数

时间:2018-03-21 01:01:37

标签: typescript typescript-typings cryptojs

SHA3函数提供了一个控制输出长度的选项,如下例所示:

var hash = CryptoJS.SHA3("Message", { outputLength: 512 });
var hash = CryptoJS.SHA3("Message", { outputLength: 384 });
var hash = CryptoJS.SHA3("Message", { outputLength: 256 });
var hash = CryptoJS.SHA3("Message", { outputLength: 224 });

但是当在带有@types/crypto-js的打字稿中使用时,我在尝试指定outputLength时收到以下类型错误:

  

类型'{outputLength:number; }'不可分配给   'string |的类型参数WordArray |未定义”。         对象文字只能指定已知属性,'stringLength'在类型'string |中不存在WordArray |   未定义”。

1 个答案:

答案 0 :(得分:0)

那是因为该函数在@types/crypto-js中被定义为:

(message: string | LibWordArray, key?: string | WordArray, ...options: any[]) => WordArray;

如您所见,它需要三个参数,第二个是密钥(可以为空)。就这样做:

CryptoJS.SHA3("Message", undefined, { outputLength: 512});

它应该有用。

顺便说一下,这个库的另一个@types @types\cryptojs,它可能更适合你。