2323import { ArrayLike } from '@stdlib/types/array' ;
2424import { ndarray , boolndarray , 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.
@@ -129,7 +134,7 @@ interface AnyBy {
129134 * var v = out.get();
130135 * // returns true
131136 */
132- < T = unknown , U = unknown > ( x : ndarray , predicate : Predicate < T , U > , thisArg ?: ThisParameterType < Predicate < T , U > > ) : boolndarray ;
137+ < T = unknown , U extends InputArray < T > = InputArray < T > , ThisArg = unknown > ( x : U , predicate : Predicate < T , U , ThisArg > , thisArg ?: ThisParameterType < Predicate < T , U , ThisArg > > ) : boolndarray ;
133138
134139 /**
135140 * Tests whether at least one element along one or more ndarray dimensions passes a test implemented by a predicate function.
@@ -172,7 +177,7 @@ interface AnyBy {
172177 * var v = out.get();
173178 * // returns true
174179 */
175- < T = unknown , U = unknown > ( x : ndarray , options : Options , predicate : Predicate < T , U > , thisArg ?: ThisParameterType < Predicate < T , U > > ) : boolndarray ;
180+ < T = unknown , U extends InputArray < T > = InputArray < T > , ThisArg = unknown > ( x : U , options : Options , predicate : Predicate < T , U , ThisArg > , thisArg ?: ThisParameterType < Predicate < T , U , ThisArg > > ) : boolndarray ;
176181
177182 /**
178183 * Tests whether at least one element along one or more ndarray dimensions passes a test implemented by a predicate function.
@@ -219,7 +224,7 @@ interface AnyBy {
219224 * var v = out.get();
220225 * // returns true
221226 */
222- assign < T = unknown , U extends ndarray = ndarray , V = unknown > ( x : ndarray , y : U , predicate : Predicate < T , V > , thisArg ?: ThisParameterType < Predicate < T , V > > ) : U ;
227+ assign < T = unknown , U extends InputArray < T > = InputArray < T > , V extends ndarray = ndarray , ThisArg = unknown > ( x : U , y : V , predicate : Predicate < T , U , ThisArg > , thisArg ?: ThisParameterType < Predicate < T , U , ThisArg > > ) : V ;
223228
224229 /**
225230 * Tests whether at least one element along one or more ndarray dimensions passes a test implemented by a predicate function.
@@ -268,7 +273,7 @@ interface AnyBy {
268273 * var v = out.get();
269274 * // returns true
270275 */
271- assign < T = unknown , U extends ndarray = ndarray , V = unknown > ( x : ndarray , y : U , options : BaseOptions , predicate : Predicate < T , V > , thisArg ?: ThisParameterType < Predicate < T , V > > ) : U ;
276+ assign < T = unknown , U extends InputArray < T > = InputArray < T > , V extends ndarray = ndarray , ThisArg = unknown > ( x : U , y : V , options : BaseOptions , predicate : Predicate < T , U , ThisArg > , thisArg ?: ThisParameterType < Predicate < T , U , ThisArg > > ) : V ;
272277}
273278
274279/**
0 commit comments