CryptoJS 和 Google 的闭包编译器

CryptoJS and Google's Closure Compiler

我正在编写一个库,并尝试使用 Closure Compiler 的高级优化功能进一步精简我的代码。

该库是使用 TypeScript 构建的,我正在使用 Google 的 CryptoJS 并使用 --allowJS 进行编译。我已经为我想要公开的方法编写了 externs;但是当我收到来自 CryptoJS core library 的错误时。从外观上看;它似乎为 Closure Compiler 做了注释,所以我很困惑为什么它会崩溃。 我正在利用闭包编译器提供的源映射,因此我可以检查缩小的代码。

具体在第 495 行; this._data.concat(data);。缩小时声明 this._data 未定义。

虽然 CryptoJS 具有 JSDoc 注释,但它似乎并不是为了与 Closure-Compiler 高级优化兼容而编写的。我可以说是因为可选参数的 JSDoc 注释不正确。

您很可能希望将 CryptoJS 用作外部库。