Microsoft/TypeScript

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

オープン

#44,191 opened on 2021/05/20

 (0 件のコメント) (1 件のリアクション) (0 人の担当者)TypeScript (13,395 件のフォーク)batch import
BugDomain: lib.d.tsHelp Wanted

Repository metrics

Stars
 (108,860 個のスター)
PR merge metrics
 (PR metrics pending)

説明

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);

コントリビューターガイド