summaryrefslogtreecommitdiff
path: root/u/fn/callable.ts
blob: 2749947e234289813eedf8d67a2bc87d3689acad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// deno-lint-ignore no-explicit-any
export interface Callable<T = any, ArgT = any> {
  (...args: Array<ArgT>): T;
}

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

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

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