所以我有一些继承的代码,如下所示:
String.fromCharCode.apply(null, new Uint8Array(license));
最近,我们不得不更新项目依赖项,而我们不在TypeScript 3上,后者抱怨此消息的代码不正确:
Argument of type 'Uint8Array' is not assignable to parameter of type 'number[]'.
Type 'Uint8Array' is missing the following properties from type 'number[]': pop, push, concat, shift, and 3 more.
我还有其他一些地方有相同的错误,它们都是Uint8Array,只有一个是Uint16Array。问题似乎在于对具有多个重载的Uint8Array构造函数进行了一些更改。我尝试将代码更改为
const jsonKey: string = String.fromCharCode.apply(null, Array.from(new Uint8Array(license)));
和
const jsonKey: string = String.fromCharCode.apply(null, Array.prototype.slice.call(new Uint8Array(license)));
这些都无法重新创建代码的原始功能,但是它们确实消除了错误消息。
答案 0 :(得分:2)
即使不那么紧凑,您也应该能够做些更容易阅读的事情:
let jsonKey: string = "";
(new Uint8Array(license)).forEach(function (byte: number) {
jsonKey += String.fromCharCode(byte);
});