TypeScript를 통해 Readable Stream 유형 오류 해결

TypeScript로 MDN의독류를 다시 쓸 때는 유형 오류를 해결하기 위해 고전했기 때문에 메모였다.
const response = await fetch(/* url */)
const reader = (response.body as ReadableStream).getReader();
const stream = new ReadableStream({
  start(controller) {
    return (function pump(): void | PromiseLike<void> {
      return reader.read().then(
        ({ done, value }: ReadableStreamReadResult<Uint8Array>) => {
        if (done) {
          return controller.close()
        }
        controller.enqueue(value)
        return pump()
      })
    })()
  }
})
const data = await new Response(stream).arrayBuffer() // or blob(), text(), json(), formData()

좋은 웹페이지 즐겨찾기