mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-08-12 04:50:18 +00:00
Lodash: add support for user-defined type guards to overSome and overEvery (#40247)
* Lodash: add support for user-defined type guards to `overSome` and `overEvery` * Improve example
This commit is contained in:
committed by
Pranav Senthilnathan
parent
92b0415393
commit
e4b9d77045
Vendored
+8
@@ -968,6 +968,10 @@ declare module "../index" {
|
||||
* @param predicates The predicates to check.
|
||||
* @return Returns the new function.
|
||||
*/
|
||||
overEvery<T, Result1 extends T, Result2 extends T>(
|
||||
a: (arg: T) => arg is Result1,
|
||||
b: (arg: T) => arg is Result2
|
||||
): (arg: T) => Result1 & Result2;
|
||||
overEvery<T>(...predicates: Array<Many<(...args: T[]) => boolean>>): (...args: T[]) => boolean;
|
||||
}
|
||||
|
||||
@@ -995,6 +999,10 @@ declare module "../index" {
|
||||
* @param predicates The predicates to check.
|
||||
* @return Returns the new function.
|
||||
*/
|
||||
overSome<T, Result1 extends T, Result2 extends T>(
|
||||
a: (arg: T) => arg is Result1,
|
||||
b: (arg: T) => arg is Result2
|
||||
): (arg: T) => Result1 | Result2;
|
||||
overSome<T>(...predicates: Array<Many<(...args: T[]) => boolean>>): (...args: T[]) => boolean;
|
||||
}
|
||||
|
||||
|
||||
@@ -6841,6 +6841,11 @@ fp.now(); // $ExpectType number
|
||||
// _.overEvery
|
||||
// _.overSome
|
||||
{
|
||||
const userDefinedTypeGuard1: (item: object) => item is { a: 1 } = anything;
|
||||
const userDefinedTypeGuard2: (item: object) => item is { b: 1 } = anything;
|
||||
|
||||
_.overEvery(userDefinedTypeGuard1, userDefinedTypeGuard2); // $ExpectType (arg: object) => { a: 1; } & { b: 1; }
|
||||
|
||||
_.overEvery((number: number) => true); // $ExpectType (...args: number[]) => boolean
|
||||
_.overEvery((number: number) => true, (number: number) => true); // $ExpectType (...args: number[]) => boolean
|
||||
_.overEvery([(number: number) => true]); // $ExpectType (...args: number[]) => boolean
|
||||
@@ -6857,6 +6862,8 @@ fp.now(); // $ExpectType number
|
||||
fp.overEvery((number: number) => true); // $ExpectType (...args: number[]) => boolean
|
||||
fp.overEvery([(number: number) => true, (number: number) => true]); // $ExpectType (...args: number[]) => boolean
|
||||
|
||||
_.overSome(userDefinedTypeGuard1, userDefinedTypeGuard2); // $ExpectType (arg: object) => { a: 1; } | { b: 1; }
|
||||
|
||||
_.overSome((number: number) => true); // $ExpectType (...args: number[]) => boolean
|
||||
_.overSome((number: number) => true, (number: number) => true); // $ExpectType (...args: number[]) => boolean
|
||||
_.overSome([(number: number) => true]); // $ExpectType (...args: number[]) => boolean
|
||||
|
||||
Vendored
+8
@@ -752,6 +752,10 @@ declare module "../index" {
|
||||
* @param predicates The predicates to check.
|
||||
* @return Returns the new function.
|
||||
*/
|
||||
overEvery<T, Result1 extends T, Result2 extends T>(...predicates: [
|
||||
(arg: T) => arg is Result1,
|
||||
(arg: T) => arg is Result2
|
||||
]): (arg: T) => Result1 & Result2;
|
||||
overEvery<T>(...predicates: Array<Many<(...args: T[]) => boolean>>): (...args: T[]) => boolean;
|
||||
}
|
||||
interface Collection<T> {
|
||||
@@ -787,6 +791,10 @@ declare module "../index" {
|
||||
* @param predicates The predicates to check.
|
||||
* @return Returns the new function.
|
||||
*/
|
||||
overSome<T, Result1 extends T, Result2 extends T>(...predicates: [
|
||||
(arg: T) => arg is Result1,
|
||||
(arg: T) => arg is Result2
|
||||
]): (arg: T) => Result1 | Result2;
|
||||
overSome<T>(...predicates: Array<Many<(...args: T[]) => boolean>>): (...args: T[]) => boolean;
|
||||
}
|
||||
interface Collection<T> {
|
||||
|
||||
Reference in New Issue
Block a user