返回值为TextEncoder.encode()
。Uint8Array<ArrayBufferLike>
类型ArrayBufferLike
包括ArrayBuffer
和SharedArrayBuffer
。如何知道encode()
将使用哪种类型的数组缓冲区?可以配置吗?为什么不直接使用ArrayBuffer
?
返回值为TextEncoder.encode()
。Uint8Array<ArrayBufferLike>
类型ArrayBufferLike
包括ArrayBuffer
和SharedArrayBuffer
。如何知道encode()
将使用哪种类型的数组缓冲区?可以配置吗?为什么不直接使用ArrayBuffer
?
我不认为存在这样的情况,即一个实例
TextEncoder
可以创建一个Uint8Array
由一个支持的新实例SharedArrayBuffer
— —buffer
编码器encode
方法返回的类型数组上的属性将始终是一个实例ArrayBuffer
— — WHATWG 编码规范描述了TextEncoder#encode
这种方式的最后一步:TypedArray
s 只是最近才被通用化(在大约一个月前发布的TS 版本 5.7中 /原始 PR)——在此之前,所有类型化数组都专门使用ArrayBufferLike
类型作为后备二进制存储,并且不能更窄地类型化。当然,在某些情况下它是有用的
SharedArrayBuffer
— — 例如自带缓冲区的场景,如encodeInto
文本编码器的方法。这可能只是 DOM 库类型(源)的一个疏忽,将来可以/将会缩小。