Open
Description
interface Array<T> {
/**
* 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
* order, until it finds one where predicate returns true. If such an element is found, find
* 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<S extends T>(predicate: (value: T, index: number, obj: T[]) => value is S, thisArg?: any): S | undefined
find(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): T | undefined
}
functions like find
and filter
should be able to utilize type predicates.
Todo
Overloads
- find
- filter
- every
- takeWhile
- dropWhile
handle curryIterFunction
related:
- https://stackoverflow.com/questions/48892283/typescript-overload-considers-only-one-of-the-overloaded-signatures
- https://stackoverflow.com/questions/39407311/typescript-class-overload-signature-is-not-compatible-with-function-implementa
- https://stackoverflow.com/questions/74082800/how-to-define-overloaded-curry-function-in-typescript
- Type Guards are lost when using currying libraries microsoft/TypeScript#16410
- Type guards should be flowed microsoft/TypeScript#10734
Metadata
Metadata
Assignees
Labels
No labels