In the following piece of TypeScript definition code, I'd like to reuse the function type of baz for the baz property of the Foo interface.
declare module 'foo' {
/* Not all exports will be reused in the interface. */
export function bar(a: string): string
/* Imagine a big and verbose function
definition with plenty overloadings: */
export function baz(a: number): number
export function baz(a: Overloaded): number
interface Foo {
/* The interface is for a function, so I cannot use module */
(a: string): string
/* how do I reuse the full definition of the baz function? */
baz
}
export default Foo
}
I have not been able to find a way to reuse the definition other than copy-paste. Is there a better way than copy-paste? It's alright if I have to define the interface first and reuse its members as static exports.