我已经将我的应用程序从angular 4升级到angular 6。我得到以下错误。错误出现在return data.buffer行。这是es兼容性问题吗?
error TS2322: Type 'ArrayBuffer | SharedArrayBuffer' is not assignable to type 'Arr
ayBuffer'.
Type 'SharedArrayBuffer' is not assignable to type 'ArrayBuffer'.
Types of property '[Symbol.toStringTag]' are incompatible.
Type '"SharedArrayBuffer"' is not assignable to type '"ArrayBuffer"'.代码
serialize(): ArrayBuffer {
let source: ArrayLike<number>[] = this.contents.map(o => new Uint8Array(o));
let lengths = source.map(o => this.numToArr(o.length));
if (!!this.value) {
const bytes = utf8.toByteArray(JSON.stringify(this.value, null, null));
const dataLength = this.numToArr(bytes.length);
source = [bytes, ...source];
lengths = [dataLength, ...lengths];
}
const totalLength = source.reduce((acc, o) => acc + o.length, 0) + lengths.reduce((acc, o) => acc + o.length, 0);
const data = new Uint8Array(totalLength);
let offset = 0;
source.forEach((item, index) => {
const prefix = lengths[index];
data.set(prefix, offset);
offset += prefix.length;
data.set(item, offset);
offset += item.length;
});
return data.buffer;
}发布于 2019-02-22 01:59:09
使用适当的类型转换,如下所示:
return data.buffer as ArrayBuffer;或者定义一个可以接受ArrayBuffer或SharedArrayBuffer的变量,如下所示:
pdf: ArrayBuffer | SharedArrayBuffer;
...
...
this.pdf = data.buffer;
return this.pdf;希望这能有所帮助。
https://stackoverflow.com/questions/52429299
复制相似问题