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; | |