Skip to content

Commit 67c9ec0

Browse files
committed
Add TypedArray interface
Resolves microsoft#15402 Changes: - Adds a TypedArray declaration to the built-in declaration libraries from which Int8Array, etc, inherit - Fixes the find() and findIndex() methods so that the third argument of the callback is `this` rather than `Array<number>` Further issues: - The NodeBuffer interface (and hence Buffer) in @types/node is incompatible with the above changes; submitted a PR at DefinitelyTyped/DefinitelyTyped#microsoft#16161
1 parent 4e32ec9 commit 67c9ec0

File tree

3 files changed

+242
-2434
lines changed

3 files changed

+242
-2434
lines changed

src/lib/es2015.iterable.d.ts

Lines changed: 1 addition & 179 deletions
Original file line numberDiff line numberDiff line change
@@ -153,11 +153,7 @@ interface String {
153153
[Symbol.iterator](): IterableIterator<string>;
154154
}
155155

156-
/**
157-
* A typed array of 8-bit integer values. The contents are initialized to 0. If the requested
158-
* number of bytes could not be allocated an exception is raised.
159-
*/
160-
interface Int8Array {
156+
interface TypedArray {
161157
[Symbol.iterator](): IterableIterator<number>;
162158
/**
163159
* Returns an array of key, value pairs for every entry in the array
@@ -185,30 +181,9 @@ interface Int8ArrayConstructor {
185181
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number): Int8Array;
186182
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Int8Array;
187183
from<Z>(arrayLike: Iterable<number>, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Int8Array;
188-
189184
from(arrayLike: Iterable<number>): Int8Array;
190185
}
191186

192-
/**
193-
* A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the
194-
* requested number of bytes could not be allocated an exception is raised.
195-
*/
196-
interface Uint8Array {
197-
[Symbol.iterator](): IterableIterator<number>;
198-
/**
199-
* Returns an array of key, value pairs for every entry in the array
200-
*/
201-
entries(): IterableIterator<[number, number]>;
202-
/**
203-
* Returns an list of keys in the array
204-
*/
205-
keys(): IterableIterator<number>;
206-
/**
207-
* Returns an list of values in the array
208-
*/
209-
values(): IterableIterator<number>;
210-
}
211-
212187
interface Uint8ArrayConstructor {
213188
new (elements: Iterable<number>): Uint8Array;
214189

@@ -221,36 +196,12 @@ interface Uint8ArrayConstructor {
221196
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number): Uint8Array;
222197
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Uint8Array;
223198
from<Z>(arrayLike: Iterable<number>, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Uint8Array;
224-
225199
from(arrayLike: Iterable<number>): Uint8Array;
226200
}
227201

228-
/**
229-
* A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.
230-
* If the requested number of bytes could not be allocated an exception is raised.
231-
*/
232-
interface Uint8ClampedArray {
233-
[Symbol.iterator](): IterableIterator<number>;
234-
/**
235-
* Returns an array of key, value pairs for every entry in the array
236-
*/
237-
entries(): IterableIterator<[number, number]>;
238-
239-
/**
240-
* Returns an list of keys in the array
241-
*/
242-
keys(): IterableIterator<number>;
243-
244-
/**
245-
* Returns an list of values in the array
246-
*/
247-
values(): IterableIterator<number>;
248-
}
249-
250202
interface Uint8ClampedArrayConstructor {
251203
new (elements: Iterable<number>): Uint8ClampedArray;
252204

253-
254205
/**
255206
* Creates an array from an array-like or iterable object.
256207
* @param arrayLike An array-like or iterable object to convert to an array.
@@ -260,32 +211,9 @@ interface Uint8ClampedArrayConstructor {
260211
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number): Uint8ClampedArray;
261212
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Uint8ClampedArray;
262213
from<Z>(arrayLike: Iterable<number>, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Uint8ClampedArray;
263-
264214
from(arrayLike: Iterable<number>): Uint8ClampedArray;
265215
}
266216

267-
/**
268-
* A typed array of 16-bit signed integer values. The contents are initialized to 0. If the
269-
* requested number of bytes could not be allocated an exception is raised.
270-
*/
271-
interface Int16Array {
272-
[Symbol.iterator](): IterableIterator<number>;
273-
/**
274-
* Returns an array of key, value pairs for every entry in the array
275-
*/
276-
entries(): IterableIterator<[number, number]>;
277-
278-
/**
279-
* Returns an list of keys in the array
280-
*/
281-
keys(): IterableIterator<number>;
282-
283-
/**
284-
* Returns an list of values in the array
285-
*/
286-
values(): IterableIterator<number>;
287-
}
288-
289217
interface Int16ArrayConstructor {
290218
new (elements: Iterable<number>): Int16Array;
291219

@@ -298,30 +226,9 @@ interface Int16ArrayConstructor {
298226
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number): Int16Array;
299227
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Int16Array;
300228
from<Z>(arrayLike: Iterable<number>, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Int16Array;
301-
302229
from(arrayLike: Iterable<number>): Int16Array;
303230
}
304231

305-
/**
306-
* A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the
307-
* requested number of bytes could not be allocated an exception is raised.
308-
*/
309-
interface Uint16Array {
310-
[Symbol.iterator](): IterableIterator<number>;
311-
/**
312-
* Returns an array of key, value pairs for every entry in the array
313-
*/
314-
entries(): IterableIterator<[number, number]>;
315-
/**
316-
* Returns an list of keys in the array
317-
*/
318-
keys(): IterableIterator<number>;
319-
/**
320-
* Returns an list of values in the array
321-
*/
322-
values(): IterableIterator<number>;
323-
}
324-
325232
interface Uint16ArrayConstructor {
326233
new (elements: Iterable<number>): Uint16Array;
327234

@@ -334,30 +241,9 @@ interface Uint16ArrayConstructor {
334241
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number): Uint16Array;
335242
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Uint16Array;
336243
from<Z>(arrayLike: Iterable<number>, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Uint16Array;
337-
338244
from(arrayLike: Iterable<number>): Uint16Array;
339245
}
340246

341-
/**
342-
* A typed array of 32-bit signed integer values. The contents are initialized to 0. If the
343-
* requested number of bytes could not be allocated an exception is raised.
344-
*/
345-
interface Int32Array {
346-
[Symbol.iterator](): IterableIterator<number>;
347-
/**
348-
* Returns an array of key, value pairs for every entry in the array
349-
*/
350-
entries(): IterableIterator<[number, number]>;
351-
/**
352-
* Returns an list of keys in the array
353-
*/
354-
keys(): IterableIterator<number>;
355-
/**
356-
* Returns an list of values in the array
357-
*/
358-
values(): IterableIterator<number>;
359-
}
360-
361247
interface Int32ArrayConstructor {
362248
new (elements: Iterable<number>): Int32Array;
363249

@@ -370,30 +256,9 @@ interface Int32ArrayConstructor {
370256
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number): Int32Array;
371257
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Int32Array;
372258
from<Z>(arrayLike: Iterable<number>, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Int32Array;
373-
374259
from(arrayLike: Iterable<number>): Int32Array;
375260
}
376261

377-
/**
378-
* A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the
379-
* requested number of bytes could not be allocated an exception is raised.
380-
*/
381-
interface Uint32Array {
382-
[Symbol.iterator](): IterableIterator<number>;
383-
/**
384-
* Returns an array of key, value pairs for every entry in the array
385-
*/
386-
entries(): IterableIterator<[number, number]>;
387-
/**
388-
* Returns an list of keys in the array
389-
*/
390-
keys(): IterableIterator<number>;
391-
/**
392-
* Returns an list of values in the array
393-
*/
394-
values(): IterableIterator<number>;
395-
}
396-
397262
interface Uint32ArrayConstructor {
398263
new (elements: Iterable<number>): Uint32Array;
399264

@@ -406,30 +271,9 @@ interface Uint32ArrayConstructor {
406271
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number): Uint32Array;
407272
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Uint32Array;
408273
from<Z>(arrayLike: Iterable<number>, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Uint32Array;
409-
410274
from(arrayLike: Iterable<number>): Uint32Array;
411275
}
412276

413-
/**
414-
* A typed array of 32-bit float values. The contents are initialized to 0. If the requested number
415-
* of bytes could not be allocated an exception is raised.
416-
*/
417-
interface Float32Array {
418-
[Symbol.iterator](): IterableIterator<number>;
419-
/**
420-
* Returns an array of key, value pairs for every entry in the array
421-
*/
422-
entries(): IterableIterator<[number, number]>;
423-
/**
424-
* Returns an list of keys in the array
425-
*/
426-
keys(): IterableIterator<number>;
427-
/**
428-
* Returns an list of values in the array
429-
*/
430-
values(): IterableIterator<number>;
431-
}
432-
433277
interface Float32ArrayConstructor {
434278
new (elements: Iterable<number>): Float32Array;
435279

@@ -442,30 +286,9 @@ interface Float32ArrayConstructor {
442286
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number): Float32Array;
443287
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Float32Array;
444288
from<Z>(arrayLike: Iterable<number>, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Float32Array;
445-
446289
from(arrayLike: Iterable<number>): Float32Array;
447290
}
448291

449-
/**
450-
* A typed array of 64-bit float values. The contents are initialized to 0. If the requested
451-
* number of bytes could not be allocated an exception is raised.
452-
*/
453-
interface Float64Array {
454-
[Symbol.iterator](): IterableIterator<number>;
455-
/**
456-
* Returns an array of key, value pairs for every entry in the array
457-
*/
458-
entries(): IterableIterator<[number, number]>;
459-
/**
460-
* Returns an list of keys in the array
461-
*/
462-
keys(): IterableIterator<number>;
463-
/**
464-
* Returns an list of values in the array
465-
*/
466-
values(): IterableIterator<number>;
467-
}
468-
469292
interface Float64ArrayConstructor {
470293
new (elements: Iterable<number>): Float64Array;
471294

@@ -478,6 +301,5 @@ interface Float64ArrayConstructor {
478301
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number): Float64Array;
479302
from(arrayLike: Iterable<number>, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Float64Array;
480303
from<Z>(arrayLike: Iterable<number>, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Float64Array;
481-
482304
from(arrayLike: Iterable<number>): Float64Array;
483305
}

src/lib/es2016.array.include.d.ts

Lines changed: 1 addition & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -16,83 +16,11 @@ interface ReadonlyArray<T> {
1616
includes(searchElement: T, fromIndex?: number): boolean;
1717
}
1818

19-
interface Int8Array {
19+
interface TypedArray {
2020
/**
2121
* Determines whether an array includes a certain element, returning true or false as appropriate.
2222
* @param searchElement The element to search for.
2323
* @param fromIndex The position in this array at which to begin searching for searchElement.
2424
*/
2525
includes(searchElement: number, fromIndex?: number): boolean;
2626
}
27-
28-
interface Uint8Array {
29-
/**
30-
* Determines whether an array includes a certain element, returning true or false as appropriate.
31-
* @param searchElement The element to search for.
32-
* @param fromIndex The position in this array at which to begin searching for searchElement.
33-
*/
34-
includes(searchElement: number, fromIndex?: number): boolean;
35-
}
36-
37-
interface Uint8ClampedArray {
38-
/**
39-
* Determines whether an array includes a certain element, returning true or false as appropriate.
40-
* @param searchElement The element to search for.
41-
* @param fromIndex The position in this array at which to begin searching for searchElement.
42-
*/
43-
includes(searchElement: number, fromIndex?: number): boolean;
44-
}
45-
46-
interface Int16Array {
47-
/**
48-
* Determines whether an array includes a certain element, returning true or false as appropriate.
49-
* @param searchElement The element to search for.
50-
* @param fromIndex The position in this array at which to begin searching for searchElement.
51-
*/
52-
includes(searchElement: number, fromIndex?: number): boolean;
53-
}
54-
55-
interface Uint16Array {
56-
/**
57-
* Determines whether an array includes a certain element, returning true or false as appropriate.
58-
* @param searchElement The element to search for.
59-
* @param fromIndex The position in this array at which to begin searching for searchElement.
60-
*/
61-
includes(searchElement: number, fromIndex?: number): boolean;
62-
}
63-
64-
interface Int32Array {
65-
/**
66-
* Determines whether an array includes a certain element, returning true or false as appropriate.
67-
* @param searchElement The element to search for.
68-
* @param fromIndex The position in this array at which to begin searching for searchElement.
69-
*/
70-
includes(searchElement: number, fromIndex?: number): boolean;
71-
}
72-
73-
interface Uint32Array {
74-
/**
75-
* Determines whether an array includes a certain element, returning true or false as appropriate.
76-
* @param searchElement The element to search for.
77-
* @param fromIndex The position in this array at which to begin searching for searchElement.
78-
*/
79-
includes(searchElement: number, fromIndex?: number): boolean;
80-
}
81-
82-
interface Float32Array {
83-
/**
84-
* Determines whether an array includes a certain element, returning true or false as appropriate.
85-
* @param searchElement The element to search for.
86-
* @param fromIndex The position in this array at which to begin searching for searchElement.
87-
*/
88-
includes(searchElement: number, fromIndex?: number): boolean;
89-
}
90-
91-
interface Float64Array {
92-
/**
93-
* Determines whether an array includes a certain element, returning true or false as appropriate.
94-
* @param searchElement The element to search for.
95-
* @param fromIndex The position in this array at which to begin searching for searchElement.
96-
*/
97-
includes(searchElement: number, fromIndex?: number): boolean;
98-
}

0 commit comments

Comments
 (0)