3

所以我有一些我继承的代码看起来像这样: 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))); 但这些都没有重新创建代码的原始功能,但它们确实抑制了错误消息。

4

1 回答 1

8

即使不那么紧凑,您也应该能够做一些更容易阅读的事情:

let jsonKey: string = "";
(new Uint8Array(license)).forEach(function (byte: number) {
    jsonKey += String.fromCharCode(byte);
});
于 2018-12-04T02:49:30.193 回答