Index: esnext.float16.d.ts
===================================================================
--- esnext.float16.d.ts
+++ esnext.float16.d.ts
@@ -41,20 +41,24 @@
* is treated as length+end.
* @param end If not specified, length of the this object is used as its default value.
*/
copyWithin(target: number, start: number, end?: number): this;
-
/**
* Determines whether all the members of an array satisfy the specified test.
* @param predicate A function that accepts up to three arguments. The every method calls
* the predicate function for each element in the array until the predicate returns a value
* which is coercible to the Boolean value false, or until the end of the array.
* @param thisArg An object to which the this keyword can refer in the predicate function.
* If thisArg is omitted, undefined is used as the this value.
*/
- every(
- predicate: (value: number, index: number, array: this) => unknown,
- thisArg?: any,
+ every<This = undefined>(
+ predicate: (
+ this: This,
+ value: number,
+ index: number,
+ array: this,
+ ) => boolean,
+ thisArg?: This,
): boolean;
/**
* Changes all array elements from `start` to `end` index to a static `value` and returns the modified array
@@ -64,21 +68,24 @@
* @param end index to stop filling the array at. If end is negative, it is treated as
* length+end.
*/
fill(value: number, start?: number, end?: number): this;
-
/**
* Returns the elements of an array that meet the condition specified in a callback function.
* @param predicate A function that accepts up to three arguments. The filter method calls
* the predicate function one time for each element in the array.
* @param thisArg An object to which the this keyword can refer in the predicate function.
* If thisArg is omitted, undefined is used as the this value.
*/
- filter(
- predicate: (value: number, index: number, array: this) => any,
- thisArg?: any,
- ): Float16Array<ArrayBuffer>;
-
+ filter<This = undefined>(
+ predicate: (
+ this: This,
+ value: number,
+ index: number,
+ array: this,
+ ) => boolean,
+ thisArg?: This,
+ ): Float16Array;
/**
* Returns the value of the first element in the array where predicate is true, and undefined
* otherwise.
* @param predicate find calls predicate once for each element of the array, in ascending
@@ -86,13 +93,12 @@
* immediately returns that element value. Otherwise, find returns undefined.
* @param thisArg If provided, it will be used as the this value for each invocation of
* predicate. If it is not provided, undefined is used instead.
*/
- find(
- predicate: (value: number, index: number, obj: this) => boolean,
- thisArg?: any,
+ find<This = undefined>(
+ predicate: (this: This, value: number, index: number, obj: this) => boolean,
+ thisArg?: This,
): number | undefined;
-
/**
* Returns the index of the first element in the array where predicate is true, and -1
* otherwise.
* @param predicate find calls predicate once for each element of the array, in ascending
@@ -100,11 +106,11 @@
* findIndex immediately returns that element index. Otherwise, findIndex returns -1.
* @param thisArg If provided, it will be used as the this value for each invocation of
* predicate. If it is not provided, undefined is used instead.
*/
- findIndex(
- predicate: (value: number, index: number, obj: this) => boolean,
- thisArg?: any,
+ findIndex<This = undefined>(
+ predicate: (this: This, value: number, index: number, obj: this) => boolean,
+ thisArg?: This,
): number;
/**
* Returns the value of the last element in the array where predicate is true, and undefined
@@ -136,19 +142,18 @@
findLastIndex(
predicate: (value: number, index: number, array: this) => unknown,
thisArg?: any,
): number;
-
/**
* Performs the specified action for each element in an array.
- * @param callbackfn A function that accepts up to three arguments. forEach calls the
+ * @param callbackfn A function that accepts up to three arguments. forEach calls the
* callbackfn function one time for each element in the array.
- * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+ * @param thisArg An object to which the this keyword can refer in the callbackfn function.
* If thisArg is omitted, undefined is used as the this value.
*/
- forEach(
- callbackfn: (value: number, index: number, array: this) => void,
- thisArg?: any,
+ forEach<This = undefined>(
+ callbackfn: (this: This, value: number, index: number, array: this) => void,
+ thisArg?: This,
): void;
/**
* Determines whether an array includes a certain element, returning true or false as appropriate.
@@ -183,50 +188,40 @@
/**
* The length of the array.
*/
readonly length: number;
-
/**
* Calls a defined callback function on each element of an array, and returns an array that
* contains the results.
* @param callbackfn A function that accepts up to three arguments. The map method calls the
* callbackfn function one time for each element in the array.
* @param thisArg An object to which the this keyword can refer in the callbackfn function.
* If thisArg is omitted, undefined is used as the this value.
*/
- map(
- callbackfn: (value: number, index: number, array: this) => number,
- thisArg?: any,
- ): Float16Array<ArrayBuffer>;
-
+ map<This = undefined>(
+ callbackfn: (
+ this: This,
+ value: number,
+ index: number,
+ array: this,
+ ) => number,
+ thisArg?: This,
+ ): Float16Array;
/**
* Calls the specified callback function for all the elements in an array. The return value of
* the callback function is the accumulated result, and is provided as an argument in the next
* call to the callback function.
* @param callbackfn A function that accepts up to four arguments. The reduce method calls the
* callbackfn function one time for each element in the array.
- * @param initialValue If initialValue is specified, it is used as the initial value to start
- * the accumulation. The first call to the callbackfn function provides this value as an argument
- * instead of an array value.
*/
- reduce(
+ reduce<U = number>(
callbackfn: (
- previousValue: number,
+ previousValue: number | U,
currentValue: number,
currentIndex: number,
array: this,
- ) => number,
- ): number;
- reduce(
- callbackfn: (
- previousValue: number,
- currentValue: number,
- currentIndex: number,
- array: this,
- ) => number,
- initialValue: number,
- ): number;
-
+ ) => U,
+ ): number | U;
/**
* Calls the specified callback function for all the elements in an array. The return value of
* the callback function is the accumulated result, and is provided as an argument in the next
* call to the callback function.
@@ -235,46 +230,32 @@
* @param initialValue If initialValue is specified, it is used as the initial value to start
* the accumulation. The first call to the callbackfn function provides this value as an argument
* instead of an array value.
*/
- reduce<U>(
+ reduce<U = number>(
callbackfn: (
previousValue: U,
currentValue: number,
currentIndex: number,
array: this,
) => U,
initialValue: U,
): U;
-
/**
* Calls the specified callback function for all the elements in an array, in descending order.
* The return value of the callback function is the accumulated result, and is provided as an
* argument in the next call to the callback function.
* @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
* the callbackfn function one time for each element in the array.
- * @param initialValue If initialValue is specified, it is used as the initial value to start
- * the accumulation. The first call to the callbackfn function provides this value as an
- * argument instead of an array value.
*/
- reduceRight(
+ reduceRight<U = number>(
callbackfn: (
- previousValue: number,
+ previousValue: number | U,
currentValue: number,
currentIndex: number,
array: this,
- ) => number,
- ): number;
- reduceRight(
- callbackfn: (
- previousValue: number,
- currentValue: number,
- currentIndex: number,
- array: this,
- ) => number,
- initialValue: number,
- ): number;
-
+ ) => U,
+ ): number | U;
/**
* Calls the specified callback function for all the elements in an array, in descending order.
* The return value of the callback function is the accumulated result, and is provided as an
* argument in the next call to the callback function.
@@ -283,9 +264,9 @@
* @param initialValue If initialValue is specified, it is used as the initial value to start
* the accumulation. The first call to the callbackfn function provides this value as an argument
* instead of an array value.
*/
- reduceRight<U>(
+ reduceRight<U = number>(
callbackfn: (
previousValue: U,
currentValue: number,
currentIndex: number,
@@ -311,20 +292,24 @@
* @param start The beginning of the specified portion of the array.
* @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.
*/
slice(start?: number, end?: number): Float16Array<ArrayBuffer>;
-
/**
* Determines whether the specified callback function returns true for any element of an array.
* @param predicate A function that accepts up to three arguments. The some method calls
* the predicate function for each element in the array until the predicate returns a value
* which is coercible to the Boolean value true, or until the end of the array.
* @param thisArg An object to which the this keyword can refer in the predicate function.
* If thisArg is omitted, undefined is used as the this value.
*/
- some(
- predicate: (value: number, index: number, array: this) => unknown,
- thisArg?: any,
+ some<This = undefined>(
+ predicate: (
+ this: This,
+ value: number,
+ index: number,
+ array: this,
+ ) => boolean,
+ thisArg?: This,
): boolean;
/**
* Sorts an array.
@@ -430,44 +415,24 @@
* Returns a new array from a set of elements.
* @param items A set of elements to include in the new array object.
*/
of(...items: number[]): Float16Array<ArrayBuffer>;
-
/**
* Creates an array from an array-like or iterable object.
- * @param arrayLike An array-like object to convert to an array.
+ * @param arrayLike An array-like or iterable object to convert to an array.
*/
from(arrayLike: ArrayLike<number>): Float16Array<ArrayBuffer>;
-
/**
* Creates an array from an array-like or iterable object.
- * @param arrayLike An array-like object to convert to an array.
+ * @param arrayLike An array-like or iterable object to convert to an array.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from<T>(
+ from<T, This = undefined>(
arrayLike: ArrayLike<T>,
- mapfn: (v: T, k: number) => number,
- thisArg?: any,
+ mapfn: (this: This, v: T, k: number) => number,
+ thisArg?: This,
): Float16Array<ArrayBuffer>;
-
- /**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
- */
- from(elements: Iterable<number>): Float16Array<ArrayBuffer>;
-
- /**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
- * @param mapfn A mapping function to call on every element of the array.
- * @param thisArg Value of 'this' used to invoke the mapfn.
- */
- from<T>(
- elements: Iterable<T>,
- mapfn?: (v: T, k: number) => number,
- thisArg?: any,
- ): Float16Array<ArrayBuffer>;
}
declare var Float16Array: Float16ArrayConstructor;
interface Math {