Microsoft/TypeScript

Suggestion: use numeric literals for `BYTES_PER_ELEMENT`

オープン

#59,557 opened on 2024/08/08

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

Repository metrics

Stars
 (108,860 個のスター)
PR merge metrics
 (平均マージ 6d 17h) (30d で 9 merged PRs)

説明

⚙ Compilation target

ES5+

⚙ Library

lib.es5.d.ts, lib.es2022.bigint.d.ts

Missing / Incorrect Definition

Suggesting to change the BYTES_PER_ELEMENT static and instance properties as follows:

interface Uint8Array {
    // ...
-   readonly BYTES_PER_ELEMENT: number;
+   readonly BYTES_PER_ELEMENT: 1;
    // ...
}
interface BigInt64ArrayConstructor {
    // ...
-   readonly BYTES_PER_ELEMENT: number;
+   readonly BYTES_PER_ELEMENT: 8;
    // ...
}

Etc.

Sample Code

declare function fn(bytesPerElement: 1 | 2 | 4 | 8): void
// currently reports "Argument of type 'number' is not assignable to parameter of type '1 | 2 | 4 | 8'".
fn(Uint32Array.BYTES_PER_ELEMENT)

Documentation Link

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/BYTES_PER_ELEMENT#examples

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