UNPKG

type-plus

Version:
24 lines 782 B
import type { AnyFunction } from './any_function.js'; /** * Extract the function signature from a composite type T. * * It works with interact of functions, but not on function overloads and union. * @note does not work with function overloads. * * ```ts * import type { ExtractFunction } from 'type-plus' * * type R = ExtractFunction<{ * () => void * a: 1 * }> // () => void * ``` */ export type ExtractFunction<T extends AnyFunction> = T extends AnyFunction<infer P, infer R> ? (...args: P) => R : never; /** * Extract the function signature from a composite function. * * @note does not work with function overloads. */ export declare function extractFunction<T extends AnyFunction>(fn: T): ExtractFunction<T>; //# sourceMappingURL=extract_function.d.ts.map