| declare const mimicFn: { |
| /** |
| Make a function mimic another one. It will copy over the properties `name`, `length`, `displayName`, and any custom properties you may have set. |
| |
| @param to - Mimicking function. |
| @param from - Function to mimic. |
| @returns The modified `to` function. |
| |
| @example |
| ``` |
| import mimicFn = require('mimic-fn'); |
| |
| function foo() {} |
| foo.unicorn = '🦄'; |
| |
| function wrapper() { |
| return foo(); |
| } |
| |
| console.log(wrapper.name); |
| //=> 'wrapper' |
| |
| mimicFn(wrapper, foo); |
| |
| console.log(wrapper.name); |
| //=> 'foo' |
| |
| console.log(wrapper.unicorn); |
| //=> '🦄' |
| ``` |
| */ |
| < |
| ArgumentsType extends unknown[], |
| ReturnType, |
| FunctionType extends (...arguments: ArgumentsType) => ReturnType |
| >( |
| to: (...arguments: ArgumentsType) => ReturnType, |
| from: FunctionType |
| ): FunctionType; |
| |
| // TODO: Remove this for the next major release, refactor the whole definition to: |
| // declare function mimicFn< |
| // ArgumentsType extends unknown[], |
| // ReturnType, |
| // FunctionType extends (...arguments: ArgumentsType) => ReturnType |
| // >( |
| // to: (...arguments: ArgumentsType) => ReturnType, |
| // from: FunctionType |
| // ): FunctionType; |
| // export = mimicFn; |
| default: typeof mimicFn; |
| }; |
| |
| export = mimicFn; |