16
16
* limitations under the License.
17
17
*/
18
18
19
- // TypeScript Version: 2.0
19
+ // TypeScript Version: 4.1
20
20
21
21
/// <reference types="@stdlib/types"/>
22
22
23
- import { Iterator as Iter , IterableIterator } from '@stdlib/types/iter' ;
24
- import { ArrayLike } from '@stdlib/types/array' ;
23
+ import { TypedIterator , TypedIterableIterator } from '@stdlib/types/iter' ;
25
24
import { Collection } from '@stdlib/types/object' ;
26
25
27
26
// Define a union type representing both iterable and non-iterable iterators:
28
- type Iterator = Iter | IterableIterator ;
27
+ type Iterator < T > = TypedIterator < T > | TypedIterableIterator < T > ;
29
28
30
29
/**
31
30
* Map function invoked for each iterated value.
32
31
*
33
32
* @returns iterator value
34
33
*/
35
- type Nullary = ( ) => any ;
34
+ type Nullary < U > = ( ) => U ;
36
35
37
36
/**
38
37
* Map function invoked for each iterated value.
39
38
*
40
39
* @param value - iterated value
41
40
* @returns iterator value
42
41
*/
43
- type Unary = ( value : any ) => any ;
42
+ type Unary < T , U > = ( value : T ) => U ;
44
43
45
44
/**
46
45
* Map function invoked for each iterated value.
@@ -49,7 +48,7 @@ type Unary = ( value: any ) => any;
49
48
* @param index - iterated value index
50
49
* @returns iterator value
51
50
*/
52
- type Binary = ( value : any , index : number ) => any ;
51
+ type Binary < T , U > = ( value : T , index : number ) => U ;
53
52
54
53
/**
55
54
* Map function invoked for each iterated value.
@@ -59,7 +58,7 @@ type Binary = ( value: any, index: number ) => any;
59
58
* @param src - source array-like object
60
59
* @returns iterator value
61
60
*/
62
- type Ternary = ( value : any , index : number , src : ArrayLike < any > ) => any ;
61
+ type Ternary < T , U > = ( value : T , index : number , src : Collection < U > ) => U ;
63
62
64
63
/**
65
64
* Map function invoked for each iterated value.
@@ -69,7 +68,7 @@ type Ternary = ( value: any, index: number, src: ArrayLike<any> ) => any;
69
68
* @param src - source array-like object
70
69
* @returns iterator value
71
70
*/
72
- type MapFunction = Nullary | Unary | Binary | Ternary ;
71
+ type MapFunction < T , U > = Nullary < U > | Unary < T , U > | Binary < T , U > | Ternary < T , U > ;
73
72
74
73
/**
75
74
* Fills an array-like object view with values returned from an iterator.
@@ -91,7 +90,7 @@ type MapFunction = Nullary | Unary | Binary | Ternary;
91
90
* var arr = iterator2arrayview( iter, new Float64Array( 20 ) );
92
91
* // returns <Float64Array>
93
92
*/
94
- declare function iterator2arrayview ( iterator : Iterator , out : Collection , mapFcn ?: MapFunction , thisArg ?: any ) : Collection ; // tslint:disable-line:max-line-length
93
+ declare function iterator2arrayview < T = any , U = T > ( iterator : Iterator < T > , out : Collection < U > , mapFcn ?: MapFunction < T , U > , thisArg ?: any ) : Collection < U > ; // tslint:disable-line:max-line-length
95
94
96
95
/**
97
96
* Fills an array-like object view with values returned from an iterator.
@@ -114,7 +113,7 @@ declare function iterator2arrayview( iterator: Iterator, out: Collection, mapFcn
114
113
* var arr = iterator2arrayview( iter, new Float64Array( 20 ), 5 );
115
114
* // returns <Float64Array>
116
115
*/
117
- declare function iterator2arrayview ( iterator : Iterator , out : Collection , begin : number , mapFcn ?: MapFunction , thisArg ?: any ) : Collection ; // tslint:disable-line:max-line-length
116
+ declare function iterator2arrayview < T = any , U = T > ( iterator : Iterator < T > , out : Collection < U > , begin : number , mapFcn ?: MapFunction < T , U > , thisArg ?: any ) : Collection < U > ; // tslint:disable-line:max-line-length
118
117
119
118
/**
120
119
* Fills an array-like object view with values returned from an iterator.
@@ -138,7 +137,7 @@ declare function iterator2arrayview( iterator: Iterator, out: Collection, begin:
138
137
* var arr = iterator2arrayview( iter, new Float64Array( 20 ), 5, 8 );
139
138
* // returns <Float64Array>
140
139
*/
141
- declare function iterator2arrayview ( iterator : Iterator , out : Collection , begin : number , end : number , mapFcn ?: MapFunction , thisArg ?: any ) : Collection ; // tslint:disable-line:max-line-length
140
+ declare function iterator2arrayview < T = any , U = T > ( iterator : Iterator < T > , out : Collection < U > , begin : number , end : number , mapFcn ?: MapFunction < T , U > , thisArg ?: any ) : Collection < U > ; // tslint:disable-line:max-line-length
142
141
143
142
144
143
// EXPORTS //
0 commit comments