.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / mimic-fn / index.d.ts
1 declare const mimicFn: {
2         /**
3         Make a function mimic another one. It will copy over the properties `name`, `length`, `displayName`, and any custom properties you may have set.
4
5         @param to - Mimicking function.
6         @param from - Function to mimic.
7         @returns The modified `to` function.
8
9         @example
10         ```
11         import mimicFn = require('mimic-fn');
12
13         function foo() {}
14         foo.unicorn = '🦄';
15
16         function wrapper() {
17                 return foo();
18         }
19
20         console.log(wrapper.name);
21         //=> 'wrapper'
22
23         mimicFn(wrapper, foo);
24
25         console.log(wrapper.name);
26         //=> 'foo'
27
28         console.log(wrapper.unicorn);
29         //=> '🦄'
30         ```
31         */
32         <
33                 ArgumentsType extends unknown[],
34                 ReturnType,
35                 FunctionType extends (...arguments: ArgumentsType) => ReturnType
36         >(
37                 to: (...arguments: ArgumentsType) => ReturnType,
38                 from: FunctionType
39         ): FunctionType;
40
41         // TODO: Remove this for the next major release, refactor the whole definition to:
42         // declare function mimicFn<
43         //      ArgumentsType extends unknown[],
44         //      ReturnType,
45         //      FunctionType extends (...arguments: ArgumentsType) => ReturnType
46         // >(
47         //      to: (...arguments: ArgumentsType) => ReturnType,
48         //      from: FunctionType
49         // ): FunctionType;
50         // export = mimicFn;
51         default: typeof mimicFn;
52 };
53
54 export = mimicFn;