You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.2 KiB
54 lines
1.2 KiB
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;
|
|
|