Kan inte lägga till alternativobjekt till SHA3-funktionen med TypeScript
funktionen SHA3 ger ett alternativ för att kontrollera utdata-längden som visas i detta exempel:
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 });
men när det används i TypeScript med @types/crypto-js får jag följande typerrors när jag försöker ange outputLength:
Argument av typen '{ outputLength: number; }' kan inte tilldelas parametern av typen 'string | WordArray | undefined'. Objektliteral får endast specificera kända egenskaper, och 'outputLength' finns inte i typen 'string | WordArray | undefined'.
Svar #1
Det beror på att den funktionen är definierad, i @types/crypto-js, som:
(message: string | LibWordArray, key?: string | WordArray, ...options: any[]) => WordArray;
Som du ser, förväntar den sig tre parametrar, där den andra är nyckeln (som kan vara null). Gör bara så här:
CryptoJS.SHA3("Message", undefined, { outputLength: 512});
Och det borde fungera.
Förresten, det finns en annan @types för det här biblioteket, @types\cryptojs, den kanske passar dig bättre.
