Skip to content

Commit ee83c8b

Browse files
authored
fix(typings): improve generator types (#190)
Previously, code like this would fail to typecheck: ```ts import {Matrix} from "ml-matrix" let x = [...Matrix.eye(5).values()] ``` Typescript would give the error: > Cannot iterate value because the 'next' method of its iterator expects type 'never', but array spread will always send 'undefined'.(2764)
1 parent f58cd6b commit ee83c8b

File tree

3 files changed

+10
-10
lines changed

3 files changed

+10
-10
lines changed

matrix.d.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -853,8 +853,8 @@ export abstract class AbstractMatrix {
853853
[Symbol.iterator](): Generator<
854854
[row: number, column: number, value: number],
855855
void,
856-
never
857-
>;
856+
void
857+
>;
858858

859859
/**
860860
* iterator from left to right, from top to bottom
@@ -863,14 +863,14 @@ export abstract class AbstractMatrix {
863863
entries(): Generator<
864864
[row: number, column: number, value: number],
865865
void,
866-
never
866+
void
867867
>;
868868

869869
/**
870870
* iterator from left to right, from top to bottom
871871
* yield value
872872
*/
873-
values(): Generator<number, void, never>;
873+
values(): Generator<number, void, void>;
874874

875875
// From here we document methods dynamically generated from operators
876876

@@ -1145,14 +1145,14 @@ export class SymmetricMatrix extends AbstractMatrix {
11451145
upperRightEntries(): Generator<
11461146
[row: number, column: number, value: number],
11471147
void,
1148-
never
1148+
void
11491149
>;
11501150

11511151
/**
11521152
* half iterator upper-right-corner from left to right, from top to bottom
11531153
* yield value
11541154
*/
1155-
upperRightValues(): Generator<number, void, never>;
1155+
upperRightValues(): Generator<number, void, void>;
11561156
}
11571157

11581158
export class DistanceMatrix extends SymmetricMatrix {

src/matrix.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1530,7 +1530,7 @@ export class AbstractMatrix {
15301530
/**
15311531
* iterator from left to right, from top to bottom
15321532
* yield [row, column, value]
1533-
* @returns {Generator<[number, number, number], void, *>}
1533+
* @returns {Generator<[number, number, number], void, void>}
15341534
*/
15351535
*entries() {
15361536
for (let row = 0; row < this.rows; row++) {
@@ -1543,7 +1543,7 @@ export class AbstractMatrix {
15431543
/**
15441544
* iterator from left to right, from top to bottom
15451545
* yield value
1546-
* @returns {Generator<number, void, *>}
1546+
* @returns {Generator<number, void, void>}
15471547
*/
15481548
*values() {
15491549
for (let row = 0; row < this.rows; row++) {

src/symmetricMatrix.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ export class SymmetricMatrix extends AbstractMatrix {
215215
* half iterator upper-right-corner from left to right, from top to bottom
216216
* yield [row, column, value]
217217
*
218-
* @returns {Generator<[number, number, number], void, *>}
218+
* @returns {Generator<[number, number, number], void, void>}
219219
*/
220220
*upperRightEntries() {
221221
for (let row = 0, col = 0; row < this.diagonalSize; void 0) {
@@ -232,7 +232,7 @@ export class SymmetricMatrix extends AbstractMatrix {
232232
* half iterator upper-right-corner from left to right, from top to bottom
233233
* yield value
234234
*
235-
* @returns {Generator<[number, number, number], void, *>}
235+
* @returns {Generator<[number, number, number], void, void>}
236236
*/
237237
*upperRightValues() {
238238
for (let row = 0, col = 0; row < this.diagonalSize; void 0) {

0 commit comments

Comments
 (0)