-
Notifications
You must be signed in to change notification settings - Fork 0
/
lib.es5.d.ts
28 lines (26 loc) · 1.17 KB
/
lib.es5.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
* Fixes https://github.com/microsoft/TypeScript/issues/16655 for `Array.prototype.filter()`
* For example, using the fix the type of `bar` is `string[]` in the below snippet as it should be.
*
* const foo: (string | null | undefined)[] = [];
* const bar = foo.filter(Boolean);
*
* For related definitions, see https://github.com/microsoft/TypeScript/blob/master/src/lib/es5.d.ts
*
* Original licenses apply, see
* - https://github.com/microsoft/TypeScript/blob/master/LICENSE.txt
* - https://stackoverflow.com/help/licensing
*/
/** See https://stackoverflow.com/a/51390763/1470607 */
type Falsy = false | 0 | "" | null | undefined;
interface Array<T> {
/**
* 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<S extends T>(
predicate: BooleanConstructor,
thisArg?: unknown,
): Exclude<S, Falsy>[];
}