Microsoft/TypeScript

Update `TypedArray` constructors to disallow invalid `(typedArray, byteOffset, byteLength)`

Aberta

#44.191 aberto em 20 de mai. de 2021

 (0 comentário) (1 reação) (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
 (Métricas PR pendentes)

Description

lib Update Request

Configuration Check

My compilation target is ES2020 and my lib is the default.

Missing / Incorrect Definition

TypedArray constructors allows passing (TypedArray, byteOffset, byteLength), when only byteOffset and byteLength are only used when passing in an ArrayBuffer

Sample Code

const buf = new ArrayBuffer(1024);
const uint8 = new Uint8Array(buf, 16, 128)
// No TS error, even though the `16` and `32` are completely ignored
const subUint8 = new Uint8Array(uint8, 16, 32)
subUint8.byteLength // Oops, this is 128, not 32.

Documentation Link

MDN on Uint8Array constructor

new Uint8Array(); // new in ES2017
new Uint8Array(length);
new Uint8Array(typedArray);
new Uint8Array(object);

new Uint8Array(buffer);
new Uint8Array(buffer, byteOffset);
new Uint8Array(buffer, byteOffset, length);

Guia do colaborador