Microsoft/TypeScript

Incorrect type returned by TextEncoder.encode

Aberta

#60.846 aberto em 23 de dez. de 2024

 (3 comentários) (3 reações) (0 responsável)TypeScript (13.395 forks)batch import
BugDomain: lib.d.tsHelp Wanted

Métricas do repositório

Stars
 (108.860 estrelas)
Métricas de merge de PR
 (Mesclagem média 6d 17h) (9 fundiu PRs em 30d)

Description

🔎 Search Terms

TypedArray, Uint8Array, ArrayBufferLike, TextEncoder

🕗 Version & Regression Information

  • This is the behavior in every version I tried, and I reviewed the FAQ for entries about TextEncoder

⏯ Playground Link

Playground link

💻 Code

const data = new TextEncoder().encode("hello")
//    ^? Uint8Array<ArrayBufferLike>
// The `ArrayBufferLike` may include `SharedArrayBuffer`, but `encode()` 
// only supports `ArrayBuffer`, so this breaks code expecting an `ArrayBuffer`.

function processData(d: ArrayBuffer) {
  // do stuff
}

processData(data.buffer) // This should work, but reported as type error

🙁 Actual behavior

Values returned by TextEncoder.encode are not assignable to ArrayBuffer.

🙂 Expected behavior

Values returned by TextEncoder.encode should be assignable to ArrayBuffer.

Additional information about the issue

https://stackoverflow.com/a/79300250/1494725

Guia do colaborador