2323import { ArrayLike } from '@stdlib/types/array' ;
2424import { ndarray , boolndarray , integerndarray , typedndarray } from '@stdlib/types/ndarray' ;
2525
26+ /**
27+ * Input array.
28+ */
29+ type InputArray < T > = typedndarray < T > ;
30+
2631/**
2732* Returns a boolean indicating whether an element passes a test.
2833*
@@ -55,7 +60,7 @@ type Binary<T, ThisArg> = ( this: ThisArg, value: T, indices: Array<number> ) =>
5560* @param arr - input array
5661* @returns boolean indicating whether an ndarray element passes a test
5762*/
58- type Ternary < T , ThisArg > = ( this : ThisArg , value : T , indices : Array < number > , arr : typedndarray < T > ) => boolean ;
63+ type Ternary < T , U , ThisArg > = ( this : ThisArg , value : T , indices : Array < number > , arr : U ) => boolean ;
5964
6065/**
6166* Returns a boolean indicating whether an element passes a test.
@@ -65,7 +70,7 @@ type Ternary<T, ThisArg> = ( this: ThisArg, value: T, indices: Array<number>, ar
6570* @param arr - input array
6671* @returns boolean indicating whether an ndarray element passes a test
6772*/
68- type Predicate < T , ThisArg > = Nullary < ThisArg > | Unary < T , ThisArg > | Binary < T , ThisArg > | Ternary < T , ThisArg > ;
73+ type Predicate < T , U , ThisArg > = Nullary < ThisArg > | Unary < T , ThisArg > | Binary < T , ThisArg > | Ternary < T , U , ThisArg > ;
6974
7075/**
7176* Base options.
@@ -127,7 +132,7 @@ interface SomeBy {
127132 * var v = out.get();
128133 * // returns true
129134 */
130- < T = unknown , U = unknown > ( x : ndarray , n : integerndarray | number , predicate : Predicate < T , U > , thisArg ?: ThisParameterType < Predicate < T , U > > ) : boolndarray ;
135+ < T = unknown , U extends InputArray < T > = InputArray < T > , ThisArg = unknown > ( x : U , n : integerndarray | number , predicate : Predicate < T , U , ThisArg > , thisArg ?: ThisParameterType < Predicate < T , U , ThisArg > > ) : boolndarray ;
131136
132137 /**
133138 * Tests whether at least `n` elements along one or more ndarray dimensions pass a test implemented by a predicate function.
@@ -168,7 +173,7 @@ interface SomeBy {
168173 * var v = out.get();
169174 * // returns true
170175 */
171- < T = unknown , U = unknown > ( x : ndarray , n : integerndarray | number , options : Options , predicate : Predicate < T , U > , thisArg ?: ThisParameterType < Predicate < T , U > > ) : boolndarray ;
176+ < T = unknown , U extends InputArray < T > = InputArray < T > , ThisArg = unknown > ( x : U , n : integerndarray | number , options : Options , predicate : Predicate < T , U , ThisArg > , thisArg ?: ThisParameterType < Predicate < T , U , ThisArg > > ) : boolndarray ;
172177
173178 /**
174179 * Tests whether at least `n` elements along one or more ndarray dimensions pass a test implemented by a predicate function.
@@ -213,7 +218,7 @@ interface SomeBy {
213218 * var v = out.get();
214219 * // returns true
215220 */
216- assign < T = unknown , U extends ndarray = ndarray , V = unknown > ( x : ndarray , n : integerndarray | number , y : U , predicate : Predicate < T , V > , thisArg ?: ThisParameterType < Predicate < T , V > > ) : U ;
221+ assign < T = unknown , U extends InputArray < T > = InputArray < T > , V extends ndarray = ndarray , ThisArg = unknown > ( x : ndarray , n : integerndarray | number , y : V , predicate : Predicate < T , U , ThisArg > , thisArg ?: ThisParameterType < Predicate < T , U , ThisArg > > ) : V ;
217222
218223 /**
219224 * Tests whether at least `n` elements along one or more ndarray dimensions pass a test implemented by a predicate function.
@@ -260,7 +265,7 @@ interface SomeBy {
260265 * var v = out.get();
261266 * // returns true
262267 */
263- assign < T = unknown , U extends ndarray = ndarray , V = unknown > ( x : ndarray , n : integerndarray | number , y : U , options : BaseOptions , predicate : Predicate < T , V > , thisArg ?: ThisParameterType < Predicate < T , V > > ) : U ;
268+ assign < T = unknown , U extends InputArray < T > = InputArray < T > , V extends ndarray = ndarray , ThisArg = unknown > ( x : ndarray , n : integerndarray | number , y : V , options : BaseOptions , predicate : Predicate < T , U , ThisArg > , thisArg ?: ThisParameterType < Predicate < T , U , ThisArg > > ) : V ;
264269}
265270
266271/**
0 commit comments