summaryrefslogtreecommitdiff
path: root/u/types/fn/callable.ts
blob: 60d747ba341571ceb74ea992293f6ae775dc878d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
export interface Callable<T = any, ArgT = any> {
    (...args: Array<ArgT>): T;
}

export interface Supplier<T> extends Callable<T, undefined> {
    (): T;
}

export interface Mapper<T, U> extends Callable<U, T> {
    (t: T): U;
}

export interface Predicate<T> extends Mapper<T, boolean> {}

export interface BiMapper<T, U, R> extends Callable {
    (t: T, u: U): R;
}

export interface SideEffect<T> extends Mapper<T, void> {}

export interface BiSideEffect<T, U> extends BiMapper<T, U, void> {}