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